The scroll-snap-stop property decides whether a scroll container may pass over a snap target during a fast scroll. Use normal to allow skipping, or always to force a stop at that snap position.
Set it on the snap target (the child), not on the container. The initial value is normal. It is not inherited. You still need scroll-snap-type on the container and scroll-snap-align on the targets.
Baseline · Fling-sensitive.
Standard-track and Widely available since July 2022. The always vs normal difference is clearest with a fast touchpad or touch fling, especially when the container uses mandatory snap.
Put scroll-snap-stop on the snap target. Setting it only on the container does not mark individual stops.
input
Wheel steps can hide the difference
Slow mouse-wheel ticks often stop at each snap even with normal. Use a fast touchpad or touch fling to compare.
mode
Works best with mandatory
With proximity, snapping is already looser, so forced stops are harder to notice. Prefer mandatory while learning.
ux
Too many always stops feel sticky
Reserve always for important panels. Leaving most slides at normal keeps fast scrolling usable.
Compatibility
Browser Support
scroll-snap-stop is a browser layout property for scroll snap. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since 2022
scroll-snap-stop
Chrome 75+, Firefox 103+, Safari 15+, Edge 79+, Opera 62+, Samsung Internet 11+. Internet Explorer does not support it.
95%Modern browsers
Google Chrome75+
Full support
Mozilla Firefox103+
Full support
Apple Safari15+
Full support
Microsoft Edge79+
Full support
Opera62+
Full support
Samsung Internet11+
Full support
Internet ExplorerNo support
Not supported
scroll-snap-stopWidely supported
Bottom line: Safe for modern carousels. Skip Internet Explorer. Pair with scroll-snap-type: … mandatory and test with a fast fling.
Remember
Key Takeaways
Role: decide whether a snap target can be skipped during a fast scroll.
Values:normal may pass over; always forces a stop.
Initial value:normal. Not inherited. Set on the snap target.
Tip: use always sparingly on important slides, then fling-test on a touchpad.
One line:scroll-snap-stop chooses whether a snap target is skippable — always means no pass-over.
Frequently Asked Questions
It controls whether a scroll container may pass over a snap target during a fast scroll. normal allows skipping; always forces a stop at that snap position.
normal. The browser may pass over that snap point if the user scrolls quickly.
On the snap target (the child), not on the scroll container. The container still needs scroll-snap-type, and the target needs scroll-snap-align.
The difference is clearest with a fast fling on a touchpad or touch screen. Slow wheel steps often land on each snap even with normal.
No. Set it on each target that must not be skipped. Prefer always on important slides only.
It is Baseline and widely available since July 2022: Chrome 75+, Firefox 103+, Safari 15+, Edge 79+, Opera 62+. Internet Explorer does not support it. It is a browser layout property, not a Node.js feature.