2 months ago
8adaa61The app shell is height-locked at 100dvh with overflow hidden, but on long forms the document itself gained ~84px of scroll, so the whole frame could be dragged up to reveal dead space below it. The cause was the visually-hidden `position: absolute` inputs Base UI renders behind selects and checkboxes. Their inline style sets `position: absolute` with no offsets, so each sits at its static position, and with no positioned ancestor the containing block resolved to the initial containing block. That made them count toward documentElement.scrollHeight and put them out of reach of the shell's `overflow-hidden`, which only clips descendants whose containing block is inside it. One hidden input below the fold was enough. Making the scroll container `relative` scopes them to it. Measured on /settings/general: documentElement.scrollHeight 1069 to 985 against a 985px viewport, with the inner scroll range unchanged at 287px. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Parentf0d9bb7