From ca52ed9feeb095fb0cbdc9956e7ec9fd12165ce7 Mon Sep 17 00:00:00 2001 From: Tristan Michael Date: Sun, 5 Apr 2026 19:10:37 -0700 Subject: [PATCH] Rework safe area insets with CSS variables and per-element spacers Replace container-level env(safe-area-inset-*) inline padding with --safe-top/--safe-bottom CSS variables applied per-element: drawer, task list panel, detail panels, FAB, settings overlay, error banner, and setup screen. Wrap task list in {#key app.activeListId} to force re-render on list switch (co-located with FAB safe-bottom fix). --- apps/tauri/src/App.svelte | 13 +++++++++++-- apps/tauri/src/app.css | 6 ++++++ apps/tauri/src/lib/screens/SetupScreen.svelte | 1 + apps/tauri/src/lib/screens/TasksScreen.svelte | 13 ++++++++++--- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/apps/tauri/src/App.svelte b/apps/tauri/src/App.svelte index 374f719..6ce797f 100644 --- a/apps/tauri/src/App.svelte +++ b/apps/tauri/src/App.svelte @@ -19,18 +19,27 @@ class="relative h-full w-full overflow-hidden bg-surface-light text-text-light dark:bg-surface-dark dark:text-text-dark" class:rounded-xl={isLinux} class:linux-window-border={isLinux} - style="container-type: inline-size{isMobile ? '; padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom)' : ''}" + style="container-type: inline-size" > {#if app.error}
{app.error}
{/if} - {#if app.screen === "missing"} + {#if app.initialSync} +
+ + + + +

Syncing workspace…

+
+ {:else if app.screen === "missing"}

Workspace Not Found

diff --git a/apps/tauri/src/app.css b/apps/tauri/src/app.css index 99c17b1..ceb6434 100644 --- a/apps/tauri/src/app.css +++ b/apps/tauri/src/app.css @@ -36,6 +36,12 @@ body { background: transparent; } +/* Safe area CSS variable — content elements opt into this, overlays don't */ +:root { + --safe-top: env(safe-area-inset-top); + --safe-bottom: env(safe-area-inset-bottom); +} + .linux-window-border { border: 1px solid rgba(0, 0, 0, 0.15); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 2px rgba(0, 0, 0, 0.1); diff --git a/apps/tauri/src/lib/screens/SetupScreen.svelte b/apps/tauri/src/lib/screens/SetupScreen.svelte index 7b701fc..3351296 100644 --- a/apps/tauri/src/lib/screens/SetupScreen.svelte +++ b/apps/tauri/src/lib/screens/SetupScreen.svelte @@ -221,6 +221,7 @@
+
diff --git a/apps/tauri/src/lib/screens/TasksScreen.svelte b/apps/tauri/src/lib/screens/TasksScreen.svelte index ffc5005..2f68d3b 100644 --- a/apps/tauri/src/lib/screens/TasksScreen.svelte +++ b/apps/tauri/src/lib/screens/TasksScreen.svelte @@ -215,6 +215,7 @@ >
+
-
+
{#if app.isWebdav}
@@ -374,6 +375,7 @@ >
+
+ {#key app.activeListId} {#if app.lists.length === 0}

No lists yet

@@ -558,11 +561,13 @@ {/if} {/if} {/if} + {/key}