diff --git a/platforms/metagram/src/app.css b/platforms/metagram/src/app.css index 4dbd4bbe..2f35e7bc 100644 --- a/platforms/metagram/src/app.css +++ b/platforms/metagram/src/app.css @@ -61,3 +61,90 @@ #f7a428 152.07% ); } + +/* Ensure background remains correct during transitions */ +:root[data-transition]::view-transition-group(root), +:root[data-transition]::view-transition-old(root), +:root[data-transition]::view-transition-new(root) { + background-color: white !important; /* Default to white */ +} + +/* Prevent flickering */ +:root[data-transition]::view-transition-old(root), +:root[data-transition]::view-transition-new(root) { + contain: paint; + will-change: transform, opacity; +} + +/* Slide-in from the right without fade */ +@keyframes slide-from-right { + from { + transform: translateX(100%); /* Start from the right */ + opacity: 1; /* Ensure fully visible */ + } + to { + transform: translateX(0); /* Move to original position */ + opacity: 1; + } +} + +/* Slide-out to the right without fade */ +@keyframes slide-to-right { + from { + transform: translateX(0); /* Start at original position */ + opacity: 1; + } + to { + transform: translateX(100%); /* Move to the right */ + opacity: 1; + } +} + +/* Slide-in from the left without fade */ +@keyframes slide-from-left { + from { + transform: translateX(-100%); /* Start from the left */ + opacity: 1; + } + to { + transform: translateX(0); /* Move to original position */ + opacity: 1; + } +} + +/* Slide-out to the left without fade */ +@keyframes slide-to-left { + from { + transform: translateX(0); /* Start at original position */ + opacity: 1; + } + to { + transform: translateX(-100%); /* Move to the left */ + opacity: 1; + } +} + +@keyframes fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +:root[data-transition]::view-transition-old(root) { + animation: 400ms ease-out both fade-out; +} + +:root[data-transition='right']::view-transition-new(root) { + animation: 200ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right; + position: relative; + z-index: 1; +} + +:root[data-transition='left']::view-transition-new(root) { + animation: 200ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-left; + position: relative; + z-index: 1; +} diff --git a/platforms/metagram/src/lib/fragments/BottomNav/BottomNav.stories.ts b/platforms/metagram/src/lib/fragments/BottomNav/BottomNav.stories.ts new file mode 100644 index 00000000..b9c8bd75 --- /dev/null +++ b/platforms/metagram/src/lib/fragments/BottomNav/BottomNav.stories.ts @@ -0,0 +1,16 @@ +import type { ComponentProps } from 'svelte'; +import { BottomNav } from '..'; + +export default { + title: 'UI/BottomNav', + component: BottomNav, + tags: ['autodocs'], + render: (args: { Component: BottomNav; props: ComponentProps }) => ({ + Component: BottomNav, + props: args + }) +}; + +export const Primary = { + args: {} +}; diff --git a/platforms/metagram/src/lib/fragments/BottomNav/BottomNav.svelte b/platforms/metagram/src/lib/fragments/BottomNav/BottomNav.svelte new file mode 100644 index 00000000..c8cd4ec2 --- /dev/null +++ b/platforms/metagram/src/lib/fragments/BottomNav/BottomNav.svelte @@ -0,0 +1,130 @@ + + + + + + diff --git a/platforms/metagram/src/lib/fragments/index.ts b/platforms/metagram/src/lib/fragments/index.ts index 8d8f89ef..4b92753c 100644 --- a/platforms/metagram/src/lib/fragments/index.ts +++ b/platforms/metagram/src/lib/fragments/index.ts @@ -1 +1,2 @@ +export { default as BottomNav } from './BottomNav/BottomNav.svelte'; export { default as SettingsNavigationButton } from './SettingsNavigationButton/SettingsNavigationButton.svelte'; diff --git a/platforms/metagram/src/lib/icons/Camera.svelte b/platforms/metagram/src/lib/icons/Camera.svelte new file mode 100644 index 00000000..ced49377 --- /dev/null +++ b/platforms/metagram/src/lib/icons/Camera.svelte @@ -0,0 +1,26 @@ + + + + + + diff --git a/platforms/metagram/src/lib/icons/CommentsTwo.svelte b/platforms/metagram/src/lib/icons/CommentsTwo.svelte index 3ee0814b..8247b7ab 100644 --- a/platforms/metagram/src/lib/icons/CommentsTwo.svelte +++ b/platforms/metagram/src/lib/icons/CommentsTwo.svelte @@ -1,14 +1,14 @@ diff --git a/platforms/metagram/src/lib/icons/Home.svelte b/platforms/metagram/src/lib/icons/Home.svelte index 1a2f937d..255e5bba 100644 --- a/platforms/metagram/src/lib/icons/Home.svelte +++ b/platforms/metagram/src/lib/icons/Home.svelte @@ -1,37 +1,30 @@ - - - - - - - diff --git a/platforms/metagram/src/lib/icons/Search.svelte b/platforms/metagram/src/lib/icons/Search.svelte new file mode 100644 index 00000000..f5cef932 --- /dev/null +++ b/platforms/metagram/src/lib/icons/Search.svelte @@ -0,0 +1,29 @@ + + + + + + diff --git a/platforms/metagram/src/lib/icons/index.ts b/platforms/metagram/src/lib/icons/index.ts index 764da3c4..c5af67c6 100644 --- a/platforms/metagram/src/lib/icons/index.ts +++ b/platforms/metagram/src/lib/icons/index.ts @@ -6,3 +6,5 @@ export { default as VerticalDots } from './VerticalDots.svelte'; export { default as Home } from './Home.svelte'; export { default as Flash } from './Flash.svelte'; export { default as CommentsTwo } from './CommentsTwo.svelte'; +export { default as Search } from './Search.svelte'; +export { default as Camera } from './Camera.svelte'; diff --git a/platforms/metagram/src/lib/store/store.svelte.ts b/platforms/metagram/src/lib/store/store.svelte.ts new file mode 100644 index 00000000..db7b38da --- /dev/null +++ b/platforms/metagram/src/lib/store/store.svelte.ts @@ -0,0 +1,3 @@ +export const isNavigatingThroughNav = $state({ + value: false +}); diff --git a/platforms/metagram/src/routes/(protected)/+layout.svelte b/platforms/metagram/src/routes/(protected)/+layout.svelte new file mode 100644 index 00000000..1fb8b93d --- /dev/null +++ b/platforms/metagram/src/routes/(protected)/+layout.svelte @@ -0,0 +1,9 @@ + + +
+ {@render children()} + +
diff --git a/platforms/metagram/src/routes/(protected)/discover/+page.svelte b/platforms/metagram/src/routes/(protected)/discover/+page.svelte new file mode 100644 index 00000000..68085d8d --- /dev/null +++ b/platforms/metagram/src/routes/(protected)/discover/+page.svelte @@ -0,0 +1,4 @@ + + +

Discover Page

diff --git a/platforms/metagram/src/routes/(protected)/home/+page.svelte b/platforms/metagram/src/routes/(protected)/home/+page.svelte new file mode 100644 index 00000000..04ae6f62 --- /dev/null +++ b/platforms/metagram/src/routes/(protected)/home/+page.svelte @@ -0,0 +1,12 @@ + + +

Home

+ diff --git a/platforms/metagram/src/routes/(protected)/messages/+page.svelte b/platforms/metagram/src/routes/(protected)/messages/+page.svelte new file mode 100644 index 00000000..f19257d6 --- /dev/null +++ b/platforms/metagram/src/routes/(protected)/messages/+page.svelte @@ -0,0 +1,4 @@ + + +

Messages

diff --git a/platforms/metagram/src/routes/(protected)/post/+page.svelte b/platforms/metagram/src/routes/(protected)/post/+page.svelte new file mode 100644 index 00000000..e27f433e --- /dev/null +++ b/platforms/metagram/src/routes/(protected)/post/+page.svelte @@ -0,0 +1,4 @@ + + +

Post

diff --git a/platforms/metagram/src/routes/(protected)/profile/+page.svelte b/platforms/metagram/src/routes/(protected)/profile/+page.svelte new file mode 100644 index 00000000..74ff5064 --- /dev/null +++ b/platforms/metagram/src/routes/(protected)/profile/+page.svelte @@ -0,0 +1,4 @@ + + +

Profile

diff --git a/platforms/metagram/src/routes/+layout.svelte b/platforms/metagram/src/routes/+layout.svelte index b93e9bae..8a33cead 100644 --- a/platforms/metagram/src/routes/+layout.svelte +++ b/platforms/metagram/src/routes/+layout.svelte @@ -1,7 +1,38 @@ -{@render children()} +
+ {@render children()} +
diff --git a/platforms/metagram/src/routes/+page.svelte b/platforms/metagram/src/routes/+page.svelte index 0f949547..ab9f5e28 100644 --- a/platforms/metagram/src/routes/+page.svelte +++ b/platforms/metagram/src/routes/+page.svelte @@ -1,10 +1,7 @@ -
-
-

metagram

-

metagram

-

metagram

-

metagram

-

metagram

-

metagram

-
-
+