From 1e720925e2ef690d455927c2f9e802571304982a Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 28 Jul 2026 19:30:07 +0200 Subject: fix: sticky form and navbar layout with consistent nav-height --- README.md | 3 +- src/app.css | 5 + src/lib/components/Nav.svelte | 4 +- src/routes/+layout.svelte | 2 +- src/routes/+page.svelte | 91 +++++++------- src/routes/catalog/+page.svelte | 82 ++++++------- src/routes/categories/+page.svelte | 88 +++++++------- src/routes/grocery/[id]/+page.svelte | 226 ++++++++++++++++++----------------- 8 files changed, 258 insertions(+), 243 deletions(-) diff --git a/README.md b/README.md index e3b9feb..92528ab 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,6 @@ efficient shopping walk. ## TODO -- [ ] Weird form stickyness that collapse the gap with the navbar - [ ] PWA - [ ] Live updates from server @@ -63,5 +62,5 @@ efficient shopping walk. ```bash docker build -t home-sveltekit . -docker save home-sveltekit | pv | ssh ubuntu@feed.kagamino.dev "sudo docker load" +docker save home-sveltekit | gzip | pv | ssh ubuntu@feed.kagamino.dev "gunzip | sudo docker load" ``` diff --git a/src/app.css b/src/app.css index 4982369..90ee084 100644 --- a/src/app.css +++ b/src/app.css @@ -22,6 +22,7 @@ --white: oklch(1 0 0); --bg: oklch(0.97 0.006 70); + --nav-height: 3rem; --surface: var(--white); --surface-hover: oklch(from var(--accent) 0.99 0.008 h); --border: oklch(0.91 0.006 70); @@ -49,6 +50,10 @@ body { -moz-osx-font-smoothing: grayscale; } +main { + padding: 0 1rem; +} + h1 { font-size: 1.875rem; font-weight: 700; diff --git a/src/lib/components/Nav.svelte b/src/lib/components/Nav.svelte index 5e8fa30..8f2e5c2 100644 --- a/src/lib/components/Nav.svelte +++ b/src/lib/components/Nav.svelte @@ -16,12 +16,14 @@ .navbar { display: flex; gap: 0.25rem; - padding: 0.75rem 0; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg); z-index: 20; + height: var(--nav-height); + align-items: center; + padding: 0 1rem; } .navbar a { diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 9dc0244..a168c65 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -18,6 +18,6 @@ .app { max-width: 36rem; margin: 0 auto; - padding: 0 1rem 2rem; + padding-bottom: 2rem; } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 25985f1..e4f78c5 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -96,57 +96,60 @@ > -{#if addError || form?.error} -

{addError || form?.error}

-{/if} - -{#if localItems.length === 0} -

Rien à acheter

-{:else} -
- {#each groupByCategory(localItems) as [cat, items] (cat)} -

{cat}

- - {/each} -
-{/if} +
+ {#if addError || form?.error} +

{addError || form?.error}

+ {/if} + + {#if localItems.length === 0} +

Rien à acheter

+ {:else} +
+ {#each groupByCategory(localItems) as [cat, items] (cat)} +

{cat}

+
    + {#each items as item (item.id)} +
  • + + → +
  • + {/each} +
+ {/each} +
+ {/if} +