- Ya
- 26 Agosti 2026, 03:53 UTC
- Mwandishi
- kamo
- Ahadi ya
- c916bfe
/settings/account?tab=apps scrolled the whole window, down into empty space below the shell, while the apps column it was supposedly scrolling had its own scrollbar and fit perfectly well. The culprit is two pixels tall. A child app draws a short connector between its indent and its parent's row, and that mark is position: absolute inside a motion.div that never established a containing block. So it resolved against the next positioned ancestor going up, which is the shell's content box in AuthedChrome — outside the tab panel, outside the settings card, outside the page scroller. Nine apps hang off POS, so nine marks were laid out against the shell at the offsets they occupy inside the list, the last of them well past a thousand pixels down. Overflow on an ancestor does not clip an absolute box whose containing block sits above that ancestor, so nothing clipped them and they simply extended the body's scroll height. Framer Motion is why it did not look like a layout bug from the start: the row's entry animation sets a transform, a transform makes the row a containing block, and for those 350ms everything is where it belongs. The transform goes away when the animation lands on its default values, and the rails leave with it. The row is now the containing block, and the rail is anchored with left/top rather than margins on a static position. That also fixes the quieter half of it: the marks were pinned to the shell, so they held still while the list scrolled underneath them, and a child app scrolled away from its own connector.