Make the cabinet as tall as its own content

Fixkamo-internal
Shipped
September 7, 2026 at 9:20 AM UTC
Author
Kamo
Commit
79a51c8

The page was dark for one screenful and then white for the rest of the scroll. `PageWrapper` is `height: 100%` with `flex-direction: column`, so every route in the application is a flex item in a container exactly one screen tall. A flex item SHRINKS by default and `min-height: 100%` only sets its floor — so once the tiles ran past the fold this element stopped at the viewport height while its children carried on. Measured in headless Chrome on the real page markup: a 944px element around 3787px of content. Everything below the fold was painted by whatever sits behind the scroller, which is `--background: #ffffff`. `flex-shrink: 0` is the whole fix; the same element now measures 3799px against 3799px of content, and the bottom of the scroll samples #0b0223 instead of #ffffff. Not `height: auto`, which changes nothing — shrinking applies to the used size whatever the specified one is. The curtain gets it too, for a message that wraps past the fold on a narrow viewport. The gradient had to be pinned in the same change. A radial gradient's ending shape is a percentage OF ITS BOX, so the moment the box grew to the full scroll height the 90% vertical radius grew with it and the tight glow behind the HUD became a 1300px wash spilling over the tiles — the top of the page, which was already right, would have changed too. Sizing the layer `100% 100vh` holds the halo at the height it renders at today: sampled down the first screenful, before against after is a maximum channel delta of 2, which is rounding. `b6e0ae3c` aimed at this symptom and is NOT reverted — `.ach-arcade` is still what covers rubber-band over-scroll and the portalled scrollbar. But it could only paint the ground BEHIND the page, so it hid the white on a route that happened to be dark rather than making this element cover itself. Two bugs that showed the same colour, which is why the first fix looked like it had worked. jsdom performs no layout, so the test cannot observe the 944-vs-3787 defect — every height there is 0 either way. It pins the two declarations instead, which is what a future edit would remove; verified non-vacuous by reverting the fix and watching all three fail.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing