fix(web): keep the navbar stuck to the top — drop the body height cap on the sticky range
Build and Push Containers / build-and-push-app (push) Successful in 2m28s
Build and Push Containers / build-and-push-db (push) Successful in 11s

This commit is contained in:
2026-09-01 04:20:26 -04:00
parent 725af9fac1
commit 5fa620fde5
3 changed files with 498 additions and 4 deletions
+11 -4
View File
@@ -42,7 +42,12 @@
* { box-sizing: border-box; }
html, body { height: 100%; }
/* Phase 60 (owner confirmation 2026-08-31, TODO L3): body must NOT carry a
fixed height — a sticky element's travel range is capped by its
containing block, and `body { height: 100% }` pinned the box to one
viewport, so the navbar un-pinned after ~1 viewport of scroll.
`min-height: 100dvh` on body (below) is what stretches short pages. */
html { height: 100%; }
/* The visible page background lives on <html> (the canvas). <body> must
stay transparent and must NOT create a stacking context, or the
@@ -202,9 +207,11 @@ html::after {
position: sticky;
top: 0;
z-index: 20;
/* Phase 12: body is a definite-height flex column; without this the
header shrinks (flex-shrink:1) to its content minimum on any page
whose content overflows the viewport (e.g. Sources at ≤640px). */
/* Phase 12 (reworded phase 60): body is a flex column that stretches
to at least one viewport (min-height: 100dvh) and grows with its
content; without this the header shrinks (flex-shrink:1) to its
content minimum on any page whose content overflows the viewport
(e.g. Sources at ≤640px). */
flex-shrink: 0;
}
/* 2px brand→cyan gradient hairline under the sticky header (phase 08;