From 3722ca2234f5e7ca0b14237349b516269cd096ed Mon Sep 17 00:00:00 2001 From: TurtleWolfe Date: Thu, 30 Jul 2026 06:26:25 +0000 Subject: [PATCH 1/4] fix(#373): remove the frame's phantom 56px, its forced scrollbars, and its scroll-container capture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three sections of #373's content-frame group. §A1 was already fixed (see #463); this is §A2, §A3 and §A4. §A2 — `pb-14` on the frame reserved 56px for chrome that CookieConsent already spaces for itself with its own `h-14`. Both came from the same commit, so it was duplicate compensation for one bug. It was wrong in both states: 112px reserved for a 68px banner while it showed, and 56px of empty `bg-base-200` left above the footer forever after dismissal, because the banner's own spacer unmounts with the component and this one did not. measured, per page, below the footer with banner 56px (CookieConsent's own spacer, correct) dismissed 0px (was 56px) §A3 — `min-h-screen` on ten elements inside the frame. The frame is `flex-1` inside `body.min-h-screen.flex.flex-col`, so 100vh on a descendant double-counts the nav and footer. All ten become `min-h-full`, which is what /docs and /status already did correctly. `body` keeps its own `min-h-screen`. 404 at 1440x900 scrollHeight 1141 -> 900 against a 900 clientHeight 241px of forced scroll -> none §A4 — `overflow-hidden` -> `overflow-x-clip`. An `overflow: hidden` box is a scroll container and becomes the nearest scrollport for every `position: sticky` descendant; because the frame is sized to its content it never scrolls, so sticky had nothing to stick to. `overflow-x: clip` does not establish a scroll container. Not `overflow-y-hidden`: per CSS Overflow 3, `overflow-y: hidden` with `overflow-x: visible` computes `overflow-x` to `auto`, which would keep the box a scroll container in both axes and add a horizontal scrollbar. Verified the capture is gone — walking the ancestor chain of the sticky element on /schedule and /game now returns ZERO overflow ancestors, where before it returned the frame. Also re-checked /messages, which is what `overflow-hidden` was originally added for: `documentScrolls=false`, zero inner scrollers, so no double scrollbar returns. Its own container moved to `position: fixed` since, which is why the clip is redundant there now. BUT §A4 DOES NOT MAKE THOSE TWO PAGES' STICKY WORK, AND I AM NOT CLAIMING IT DOES. Sticky also needs travel inside its containing block, and all three call sites have none: /schedule @1440 sticky 1505px in a 1505px