Skip to content

scroll snap #1134

@nairnandu

Description

@nairnandu

Description

The scroll-snap feature provides properties that allow developers to create snap points, and to control the panning and scrolling behavior between them. Snap points make content snap into position as the user scrolls overflowing content within a scroll container. When snap points don’t behave as expected, the end user experience can be jarring and visually jumpy (jumping from snap point to snap point), or sticky (sticks always to next snap point even with a fling gesture).

Interop 2023 carryover evaluation: #471

cc: @vmpstr @DavMila

Specification

https://drafts.csswg.org/css-scroll-snap-1/

web-feature

https://web-platform-dx.github.io/web-features-explorer/features/scroll-snap/

Test Links

feature:scroll-snap

Additional Signals

Standards Positions:

Browser Bugs:

Developer Surveys:

  • “Have used [scroll-snap] but bothers me a little that the actual transition/animation is a little different across browsers, would be nice to be able to pick how it should animate. Also it was a big issue for us that it doesn't work well with a mouse on desktop, causing us to need to settle for a different solution in the end” (comment no:9 with Interactions > Scroll Snap, State of CSS 2023)
  • 2024 State of CSS - “Broken or inconsistent behaviour in some browsers.” (comment no:21 for scroll snap)
  • 2025 State of CSS - “I'm glad to have such a capability, but the "stickiness" varies across different browsers and operating systems.” (comment no: 4), “Browser implementation for this seems to be inconsistent” (comment no: 14)

Additional Signals:

  • Scroll-snap-type is used on ~15% of page loads
  • 2021 scrolling survey report:
    • 43% reported it’s somewhat or extremely difficult to work with scrolling
    • 55% reported scrollable areas as very or extremely important

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions