Stop viewport shaking on browsers with classic scrollbars

Fixkamo-login
Shipped
July 6, 2026 at 8:25 PM UTC
Author
Kamo
Commit
4b4e67a

On machines whose Chrome uses layout-consuming (non-overlay) scrollbars, the login/recover pages fidgeted with both scrollbars flickering. Root cause: the root used w-screen (100vw, which includes the scrollbar gutter) while html/body had no overflow lock. A 1px vertical scrollbar made the 100vw root overflow horizontally -> horizontal scrollbar -> shrank visualViewport.height -> recomputed --app-dvh -> flipped the scrollbars back, an infinite oscillation. Overlay-scrollbar machines never overflowed, so the same code looked fine there. - Lock html,body to overflow:hidden (these are fixed full-screen views that never scroll) — breaks the feedback loop authoritatively. - Swap w-screen/100vw -> w-full/100% on all four page roots so the layout respects the scrollbar-excluded viewport regardless of scrollbar mode.

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