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 --- 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 ++++++++++++++++++----------------- 7 files changed, 257 insertions(+), 241 deletions(-) (limited to 'src') 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} +