diff --git a/frontend/src/app.css b/frontend/src/app.css index c7373ca5..ea332227 100644 --- a/frontend/src/app.css +++ b/frontend/src/app.css @@ -195,6 +195,39 @@ } } +.settings-content { + view-transition-name: settings-content; +} + +::view-transition-old(root), +::view-transition-new(root) { + animation: none; +} + +::view-transition-group(settings-content) { + animation: none; +} + +::view-transition-old(settings-content) { + animation: 120ms ease-out both vt-fade-out; +} + +::view-transition-new(settings-content) { + animation: 180ms ease-out both vt-fade-in; +} + +@keyframes vt-fade-out { + to { + opacity: 0; + } +} + +@keyframes vt-fade-in { + from { + opacity: 0; + } +} + @keyframes bg-zoom { 0% { transform: scale(1.3); diff --git a/frontend/src/lib/components/fade-wrapper.svelte b/frontend/src/lib/components/fade-wrapper.svelte deleted file mode 100644 index 1e7ffc1f..00000000 --- a/frontend/src/lib/components/fade-wrapper.svelte +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -{#if $appConfigStore.disableAnimations} - {@render children()} -{:else} -
- {@render children()} -
-{/if} diff --git a/frontend/src/lib/components/navigation-progress.svelte b/frontend/src/lib/components/navigation-progress.svelte new file mode 100644 index 00000000..dba73adb --- /dev/null +++ b/frontend/src/lib/components/navigation-progress.svelte @@ -0,0 +1,38 @@ + + +{#if navigating.to} + +{/if} + + diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index e6293aca..59f97260 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -3,6 +3,7 @@ import ConfirmDialog from '$lib/components/confirm-dialog/confirm-dialog.svelte'; import Error from '$lib/components/error.svelte'; import Header from '$lib/components/header/header.svelte'; + import NavigationProgress from '$lib/components/navigation-progress.svelte'; import { Toaster } from '$lib/components/ui/sonner'; import UnsavedChangesBar from '$lib/components/unsaved-changes-bar.svelte'; import { m } from '$lib/paraglide/messages'; @@ -44,6 +45,7 @@ } }} /> + diff --git a/frontend/src/routes/settings/+layout.svelte b/frontend/src/routes/settings/+layout.svelte index 5a39b701..c67cb98b 100644 --- a/frontend/src/routes/settings/+layout.svelte +++ b/frontend/src/routes/settings/+layout.svelte @@ -1,10 +1,11 @@
@@ -69,19 +90,17 @@ -
- - {#if sqliteStorageWarning && ($userStore?.isAdmin || user?.isAdmin)} - - - - - - - {/if} - - {@render children()} - +
+ {#if sqliteStorageWarning && ($userStore?.isAdmin || user?.isAdmin)} + + + + + + + {/if} + + {@render children()}
diff --git a/frontend/src/routes/settings/audit-log/audit-log-switcher.svelte b/frontend/src/routes/settings/audit-log/audit-log-switcher.svelte index 67b73691..ca08182f 100644 --- a/frontend/src/routes/settings/audit-log/audit-log-switcher.svelte +++ b/frontend/src/routes/settings/audit-log/audit-log-switcher.svelte @@ -6,7 +6,7 @@ let { currentPage }: { currentPage: 'personal' | 'global' } = $props(); -
+
goto('/settings/audit-log')} value="personal"