Give the pane a real scrollbar, and the gap the lender's colour

Fixkamo-apps
Shipped
September 6, 2026 at 12:40 AM UTC
Author
Kamo
Commit
4158255

The scroller had an OVERLAY scrollbar: Chrome's default for an inner scroll container, taking no layout space and fading out when idle. On a document you tolerate that, but here the page itself no longer scrolls — the pane does — so there is no window scrollbar to fall back on, and an application that plainly continues below the fold looked like it did not move at all. Measured before: 400px of content below the fold against offsetWidth - clientWidth of exactly 0, which is what an overlay scrollbar reserves. It is 10 now. scrollbar-width opts the element out of overlay behaviour and scrollbar-gutter holds the track's space whether or not it is in use, so the form does not jump sideways the first time it grows past one screen. The ::-webkit-scrollbar rules below are for the engines that predate the standard properties; Chrome 121 and Safari 18.2 onwards ignore them in favour of the ones above, which is the intended overlap rather than a duplicate. The track is opaque deliberately. Behind the scroller lies BackgroundStage, `fixed inset-0` in the lender's own --brand and overscaled for its drift, so a transparent track would take whatever colour that lender happens to have chosen and a thumb at a third of an alpha over a dark one would be near enough invisible. The gap around the pane is now var(--color-secondary): the organization's own base colour, the same token and the same #cdcdcd default kamo-login and kamo-register use, overridden at runtime by the themed stylesheet DynamicMetaLoader appends. Verified end to end — the stage resolves to rgb(152, 170, 66) from theme.kamocrm.com's --color-secondary rather than the warm grey this site had picked for itself. One caveat on the evidence: this machine has no display and headless Chrome does not paint scrollbars into screenshots at all — forcing scrollbar-color to red and green renders nothing either way — so the bar itself is unverified by eye. What is verified is the layout it now reserves, the computed properties, and that the earlier fix still holds: the background moves 0px while the pane scrolls 350.

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