The overscroll-behavior-inline property sets what the browser does when scrolling hits the inline-axis edge of a scroll container. In horizontal writing modes such as English, the inline axis is horizontal: left and right edges.
Use it on carousels, tab strips, and wide tables so sideways overscroll does not move a parent scroll area. Pair it with overflow-x: auto or overflow: auto. For both axes at once, use overscroll-behavior.
Limited availability.
Not deprecated and not experimental, but MDN marks it Limited availability: Safari support starts at 16, and the newer chain value is missing in Safari and older Chromium/Firefox builds.
Bottom line: Safe for auto, contain, and none in current evergreen browsers and Safari 16+. Treat chain as Limited availability. Internet Explorer has no support.
Remember
Key Takeaways
Role: control overscroll at the inline-axis edge of a scroll container.
Common pick:contain for carousels and tabs; none when bounce must stop too.
Logical axis: horizontal in English; follows writing-mode.
Initial value:auto. Not inherited. Needs a horizontal scroll container.
One line:overscroll-behavior-inline decides whether inline-axis overscroll chains out of a nested sideways scroll box.
Frequently Asked Questions
It controls what happens when scrolling reaches the inline-axis edge of a scroll container. In horizontal writing modes such as English, that edge is the left or right.
It is when scrolling past the left or right edge of one box continues scrolling a parent or the page behind it. contain and none stop that on the inline axis.
Use contain to stop inline-axis scroll chaining while still allowing local bounce. Use none when you also want to disable bounce and side-swipe navigation effects.
overscroll-behavior-inline follows writing mode: horizontal in English, vertical in vertical writing. overscroll-behavior-x always targets the physical horizontal axis.
No. Set it on the scroll container itself. The initial value is auto.
Chrome 77+, Firefox 73+, Safari 16+, and Edge 79+ support auto, contain, and none. The newer chain value needs Chrome 150+, Firefox 157+, or Edge 150+, and Safari does not support it yet. It is a browser CSS property, not a Node.js feature.