Re: [csswg-drafts] [css-scroll-snap-1] Improve or clarify nested snap behaviors (#9187)

I made a diagram to help discuss the behaviors:

![scroll-snap-ranges](https://github.com/w3c/csswg-drafts/assets/366761/64b49604-6063-4a5e-a665-fd0ac0f7fbf9)

I think the expected behavior given this set of snap regions is the following:
1. User's viewport can scroll freely within range 1
2. Scrolling your viewport past range 1 will snap the viewport to range 2 (i.e. you won't be able to stop scrolling with `#b` half scrolled into view)
3. Optional: Scrolling past range 2 will then jump to range 3 (range 3 aligns the gap between range 2 and range 4 with the `scroll-snap-align` declared on `#a` (i.e. currently top aligned but could be center / bottom aligned instead).
4. Scrolling past range 3 (or range 2 if we don't consider range 3 a valid snap point) snaps to range 4.
5. Optional: Scrolling past range 4 scrolls to range 5 until the bottom is aligned with the bottom of the viewport.

I think that including range 3 and range 5 are a good idea to avoid accidental unreachable content within an element which was declared with scroll-snap-align. However, if the only reason for the gap between range 2 and range 4 is blank (e.g. maybe entirely due to margins on `#b` and `#c`) we probably wouldn't want to snap to the gap between them / after them. As such, maybe range 3 and 5 are conditional on whether the preceding / following snap points' margin boxes fill that gap.

-- 
GitHub Notification of comment by flackr
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9187#issuecomment-1681194746 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 16 August 2023 19:58:54 UTC