Summary
body { zoom: 1.25; } (src/scss/_layout.scss, confirmed live since at
least 2026-04-11, likely earlier — muse blame couldn't reliably date it
due to a separate false-attribution bug filed as muse#84 in the muse repo)
is the root cause of a class of layout bugs where position: sticky and
100dvh-based height calculations misbehave. zoom is a non-standard CSS
property (WebKit/Chromium-originated) that rescales the entire layout box
model including viewport-unit math and sticky offset calculations, in ways
that are inconsistent across engines.
musehub#84 / the two-column-scroll-layout fix worked around this by avoiding
position: sticky entirely (bounded-height flex/grid with independent
overflow-y: auto per column instead) — but zoom itself is still present
and will keep causing friction for any future layout work that assumes
standard viewport-relative math.
Why not fixed now
Removing zoom outright and replacing it with rem-based font scaling (the
standard equivalent) is blocked: the design system's spacing tokens
(--space-*) are currently defined in px, not rem. Without zoom,
px-based spacing wouldn't scale with the intended 1.25x zoom effect, so
removing zoom requires first converting spacing tokens to rem — a broader
design-token refactor, not a drop-in swap.
Proposed investigation
- Audit
--space-*and any otherpx-based design tokens for feasibility of aremconversion. - Prototype removing
body { zoom: 1.25 }in favor ofhtml { font-size: 125% }(or equivalent) once tokens arerem-based. - Re-test all pages that use
position: sticky(if any remain) and anydvh/vhviewport-unit calculations for correctness oncezoomis gone. - Decide whether the bounded-height/independent-scroll pattern introduced in
musehub#84 should be kept regardless (it's the more idiomatic, cross-browser
pattern for independently-scrolling columns even without
zoomin the picture).
Impact
Not urgent — the concrete symptom (broken two-column scroll) is already
fixed. This is forward-looking: zoom remains a landmine for any future
CSS relying on standard viewport-unit or sticky-positioning math.