TL;DR: Chrome 156, released October 20, 2026, extends the overflow property to accept paired values like overflow: scroll clip, so an element can scroll on one axis and merely clip on the other. The practical payoff is single-axis scroll containers: position: sticky can now be constrained by a scroll container on one axis while staying free of a competing scroll container on the other, finally fixing the years-old bug class where sticky headers broke the moment a wrapper needed overflow-x: auto.
The fix lands quietly in a release notes entry, but it closes a gap CSSWG contributors have tracked since 2025: any ancestor with overflow set to anything other than visible becomes a scroll container, and position: sticky only sticks within its nearest scroll-container ancestor. Teams shipping production interfaces with standards-compliant software development at YuSMP have been working around this for years with JavaScript scroll listeners standing in for what should have been a one-line CSS declaration — this release removes the excuse for that workaround in the cases it covers.
Before this release, overflow accepted one scrollability behavior per axis, and that behavior had to be a single value: visible, hidden, clip, scroll, or auto. If you needed one axis scrollable and wanted the other merely clipped — not scrolled, not visible — you had no clean way to say so, and a common developer habit of reaching for overflow: hidden or auto on both axes quietly created a full scroll container on an axis that never needed one. Chrome's own release notes describe the fix as extending overflow to support scrollable values paired with clip — overflow: scroll clip or the shorthand overflow-x/overflow-y equivalents — so a developer can now declare exactly which axis scrolls and which one merely clips without scrolling.
The CSS Positioned Layout spec ties a sticky element to its nearest ancestor scroll container. That rule has always been correct and predictable in isolation — the trouble is that overflow couldn't distinguish "I want this axis clipped" from "I want this axis to be a scroll container," so any clipping intent on either axis risked creating a scroll container on both. A horizontally scrollable data table with a sticky header row is the textbook failure case: set overflow-x: auto to let wide tables scroll sideways, and the sticky header — which only needs to pin on the vertical axis — finds its nearest scroll-container ancestor is the table wrapper itself, not the page, and stops behaving the way the author expected.
With single-axis scroll containers, the table-wrapper pattern becomes a two-line fix: overflow-x: scroll (or auto) lets the table scroll sideways, overflow-y: clip keeps the vertical axis from becoming its own scroll container, and the sticky header resolves against whatever ancestor actually owns vertical scrolling — typically the page itself. The same pattern applies to sidebars with internal horizontal carousels, dashboard panels with independently scrollable columns, and any component where a design calls for a sticky element to track page scroll while a sibling or child scrolls independently on the other axis. None of this requires a JavaScript scroll listener, an IntersectionObserver polyfill, or a wrapper div invented solely to reset the scroll-container chain — it is a direct, declarative fix for a layout bug that has shipped workarounds into production codebases for years.
This is a Chrome 156 feature as of its October 20, 2026 release; cross-browser support is not yet confirmed in Firefox or Safari, so treat it as progressive enhancement rather than a baseline assumption until Interop tracking confirms wider adoption. Feature-detect with @supports (overflow: scroll clip) before depending on the behavior in a layout that needs to degrade gracefully, and keep an existing JavaScript fallback in place for browsers that haven't shipped it. Chrome 156 landed alongside other CSS additions worth knowing about — a random() function for generative values and scroll-snap-type: pair for keeping snap targets aligned across both axes — but the single-axis scroll container change is the one most likely to delete code from an existing production layout rather than add a new capability to a future one.
Pair a scrollable value with clip on the opposite axis — for example overflow-x: scroll; overflow-y: clip; — so only one axis becomes a scroll container.
No — that is the whole point of the change. clip suppresses scrolling and visible overflow without making the element a scroll container, so a sticky descendant can resolve against the next real scroll-container ancestor instead.
Yes, until Firefox and Safari ship matching support — feature-detect with @supports (overflow: scroll clip) and keep the existing fallback behind the negative case.
No — this is a layout capability, not a measurement change. It can indirectly reduce CLS caused by JavaScript-driven sticky workarounds reflowing late, but it isn't a vitals metric itself.