Original spec, probably represents MS impl? https://rawgit.com/w3c/csswg-drafts/7c784c82310085325b0966414959965675f57f7e/css-snappoints/Overview.html#scroll-snap-type https://lists.w3.org/Archives/Public/www-style/2013Aug/0224.html Issue: Snap offsets should be derived automatically from the layout if the descendants of the scrolling container, so that changes to that layout don't require manual updating of some property set on the container. Issue: Define interaction with transforms Issue: Guideline that scroll gestures with definite direction do not scroll backwards to snap point Issue: Allow UAs to not snap when box is larger than scroll-port Issue: Define that all user scroll gestures are affected by snapping Issue: Define whether script-driven scrolling is affected by snapping Issue: Define that layout changes do not trigger resnapping https://lists.w3.org/Archives/Public/www-style/2013Aug/0226.html Issue: Define box-based scroll-snap with per-element padding/offsets https://lists.w3.org/Archives/Public/www-style/2013Aug/0257.html Issue: Allow snapping between multicol columns Response: (roc) Create a ::column pseudo-element https://lists.w3.org/Archives/Public/www-style/2013Aug/0248.html Issue: Add scroll jumping feature Response: (roc) Ua-defined, could depend on scroll mech Issue: Add scroll snappoint repetition length Response: (roc) See no use case https://lists.w3.org/Archives/Public/www-style/2013Aug/0253.html Issue: Use logical directions Response: (roc) Layout isn't always logical https://lists.w3.org/Archives/Public/www-style/2013Aug/0253.html Response: (howcome) Axis isn't usually WM defined, but direction is https://lists.w3.org/Archives/Public/www-style/2013Aug/0258.html https://lists.w3.org/Archives/Public/www-style/2013Oct/0570.html Issue: Snap "discretely", rather than smoothly scrolling, like spreadsheets do. Issue: Need to snap to elements. https://lists.w3.org/Archives/Public/www-style/2013Oct/0571.html https://lists.w3.org/Archives/Public/www-style/2013Oct/0574.html Issue: Maybe need implicit snap points at 0/end, but also there are use-cases for not doing it. (Using snap-points for pull-to-refresh, for example, to hide the "pulled" part initially.) https://lists.w3.org/Archives/Public/www-style/2013Oct/0574.html Issue: Need to be able to scroll an overly-large element without it forcing a snap, even if it's "mandatory". https://lists.w3.org/Archives/Public/www-style/2013Dec/0058.html Issue: Change name to css-scrollsnap, as we're not snappint points. Issue: scroll-snap-type is too verbose. Shorten to scroll-snap? Issue: Independent control over vert and horiz snapping is needed. (Scrolling through a vertical snapped list of items, but some might overflow.) Issue: What should we do when when we're snapped, then the element moves? For proximity, maybe okay to do nothing, but mandatory should re-snap. Issue: Proposal for adding edges of an element's margin or border box to the list of available snap points, in https://wiki.mozilla.org/index.php?title=Gecko:CSSScrollSnapping Issue: Given element-based snapping, need ability to say "none" in scroll-snap-points-x/y Issue: What should we do if mandatory snapping, but no snap points? Suggestion, snap to zero. https://lists.w3.org/Archives/Public/www-style/2013Dec/0064.html Issue: Snap to grid lines? https://lists.w3.org/Archives/Public/www-style/2013Dec/0284.html Issue: Propose that when doing element-snapping, automatically decide which edge to snap based on the direction you're scrolling. Eg, snap bottom edge when scrolling down. https://lists.w3.org/Archives/Public/www-style/2013Dec/0303.html Issue: Need a way to snap to the center of an element. Issue: Need a way to snap while "peeking" the next/prev thing a little bit. https://lists.w3.org/Archives/Public/www-style/2013Dec/0375.html Issue: Add DOM stuff [no clue what stuff, Tab you'll have to elaborate] Response: (roc) Use scrollTop and scrollLeft https://lists.w3.org/Archives/Public/www-style/2013Dec/0384.html https://lists.w3.org/Archives/Public/www-style/2013Dec/0384.html Issue: Might be nice to have API to get snap destinations https://lists.w3.org/Archives/Public/www-style/2014Jan/0591.html Issue: Stop ignoring my feedback Response: (rakow) I'm going to work on it https://lists.w3.org/Archives/Public/www-style/2014Jan/0592.html Issue: Independent scroll-snap-type per axis Response: (rakow) This interferes with 2D snapping https://lists.w3.org/Archives/Public/www-style/2014Jan/0592.html Issue: Don't see use case for scroll-snap-points-x/y given elements Issue: "leading edge" used without definition Response: (rakow) Replced with "start edge" https://lists.w3.org/Archives/Public/www-style/2014Oct/0436.html Issue: "scroll-snap-axis-x/y" poorly named Response: (rakow) Renamed to "scroll-snap-destination" https://lists.w3.org/Archives/Public/www-style/2014Mar/0000.html Issue: "scroll-snap-coordinate-x/y" poorly named Issue: Reference to box, doesn't say whether margin/padding/content box Issue: Initial value of "scroll-snap-coordinate-x/y" bad Response: (rakwo) Added 'none' as initial value https://lists.w3.org/Archives/Public/www-style/2014Mar/0000.html Issue: "scroll-snap-position-x/y:elements" seems unnecessary. Just always snap to elements (union with -position lengths) https://lists.w3.org/Archives/Public/www-style/2014Jan/0592.html Issue: Need to be able to do 2d snapping, such as cities on a map snapping to the center of the viewport. Issue: Need to handle overly-large elements. (collapse this issue's duplicates later ;) Issue: Elements with multiple "points of interest" that can all be snapped to? Response: Roc suggests just using dummy elements, or script. https://lists.w3.org/Archives/Public/www-style/2014Jan/0594.html https://lists.w3.org/Archives/Public/www-style/2014Feb/0607.html Use case: scrolling through photo album, want to snap each image to center of screen, or slightly offset from center. Use case: scrolling through photo album, want to present it "film-strip" style N at a time. Use case: scrolling a large map, want to snap cities to the center when they're close, or slightly offset from center. Issue: Make sure zooming doesn't interfere with snapping, or make it act in a weird/unpredictable manner. Response: (rakow) Specified that visual viewport snaps, not layout viewport https://lists.w3.org/Archives/Public/www-style/2014Oct/0436.html Issue: Remove the "elements" value from scroll-snap-points-x/y, and just merge the lists together. Response: (rakow) Removed https://lists.w3.org/Archives/Public/www-style/2014Oct/0436.html Issue: Have the children determine the scroll snapping beahvior (proximity, mandatory), rather than container. Issue: Some syntactic concerns (hyphenization, commas) Issue: Multiple snap-points per element? Issue: Make sure this works with box-sizing, and uses consistent terminology. https://lists.w3.org/Archives/Public/www-style/2014Feb/0815.html Issue: Remove snap-list/snap-interval in favor of element-snapping Response: (rakow) snap-interval needed for paging https://lists.w3.org/Archives/Public/www-style/2014Feb/0829.html Rebuttal: (roc) don't think this is user-friendly https://lists.w3.org/Archives/Public/www-style/2014Mar/0025.html Issue: Use commas in functional notation Response: (rakow) Following CSS conventions https://lists.w3.org/Archives/Public/www-style/2014Feb/0829.html https://lists.w3.org/Archives/Public/www-style/2014Mar/0032.html Issue: Case of elements snapping to different points Issue: Initial value of scroll-snap-coordinate is bad Response: (rakow) Gonna fix it https://lists.w3.org/Archives/Public/www-style/2014Feb/0829.html Issue: Bunch of stuff probably not needed? (not sure what stuff) Response: (rakow) https://lists.w3.org/Archives/Public/www-style/2014Feb/0829.html Issue: Underdefined which box we're relative to Issue: Per-gesture snapping points (top vs bottom depending on direction) Response: (Rakow) This is weird and bad https://lists.w3.org/Archives/Public/www-style/2014Feb/0829.html Rebuttal: (roc) Disagree, not having this is bad. However, only works for items fully in the scrollport https://lists.w3.org/Archives/Public/www-style/2014Feb/0829.html Response: (rakow) You're wrong, there are more use cases than that. https://lists.w3.org/Archives/Public/www-style/2014Mar/0014.html https://lists.w3.org/Archives/Public/www-style/2014Feb/0816.html Issue: Start with focus on box-snapping, not length snapping. Length snapping hard-codes assumptions, doesn't react to layout. Lengths may be useful, but they are not useful for the simple cases. Handle the simple cases well first. https://lists.w3.org/Archives/Public/www-style/2014Feb/0830.html https://lists.w3.org/Archives/Public/www-style/2014Feb/0829.html Use case: Handle redfin filmstrip (repeat 9 photos, 10 photos visible) Response: (roc) Use container.scrollBy(container.clientWidth, 0, {behavior:"smooth"}) https://lists.w3.org/Archives/Public/www-style/2014Mar/0062.html https://lists.w3.org/Archives/Public/www-style/2014Mar/0008.html Issue: Mandatory snapping should be disabled when box fills viewport Response: (rakow) Changing behavior based on size is confusing https://lists.w3.org/Archives/Public/www-style/2014Mar/0014.html Rebuttal: (roc) Authors are dumb, we have to help users https://lists.w3.org/Archives/Public/www-style/2014Mar/0025.html https://lists.w3.org/Archives/Public/www-style/2014Mar/0014.html Issue: Use case for baseline alignment Use case: Spreadsheet, snapping rows/columns to start/start Response: (roc) Spreadsheet scrolling behavior is evil https://lists.w3.org/Archives/Public/www-style/2014Mar/0025.html Use case: Text editor, snapping top line with top Response: (roc) Use case is imaginary afaict https://lists.w3.org/Archives/Public/www-style/2014Mar/0025.html https://lists.w3.org/Archives/Public/www-style/2014Mar/0025.html Issue: Add 'snap' parameter to CSSOM ScrollOptions https://lists.w3.org/Archives/Public/www-style/2014Mar/0046.html Issue: scroll-snap-points syntax needs work Response: Okay https://lists.w3.org/Archives/Public/www-style/2014Mar/0074.html https://lists.w3.org/Archives/Public/www-style/2014Mar/0075.html https://lists.w3.org/Archives/Public/www-style/2014Mar/0106.html https://lists.w3.org/Archives/Public/www-style/2014Aug/0397.html Issue: What to do when the end of the box isn't a snap point, and type is mandatory? Bounce, or assume there's one there anyway? Response: Francois says omitting the end can be useful to do pull-to-refresh behaviors at end. https://lists.w3.org/Archives/Public/www-style/2014Aug/0427.html https://lists.w3.org/Archives/Public/www-style/2014Sep/0282.html Bunch of use cases, need to evaluate https://lists.w3.org/Archives/Public/www-style/2014Oct/0029.html Response: Direction-based snapping is wrong Issue: Remove scroll-snap-points-x/y Issue: Specify box (margin/border) plus offsets Issue: scroll-snap-coordinate/destination are terrible names https://lists.w3.org/Archives/Public/www-style/2014Oct/0436.html Response: Mandatory snap points must resnap when layout shifts Response: Removed scroll-snap-points-x/y offset list Response: Deferring snap areas, per-axis snap type, snappoint links, APIs https://lists.w3.org/Archives/Public/www-style/2014Oct/0474.html Issue: Better define the actual snapping behavior, preferably in terms of the CSSOM scroll position concept. Issue: Define behavior when there's no snap points, or there are some snap points but none within the valid scrolling range. Issue: Define behavior of repeat(0px) or repeat(-1px). Response: Disallowed zero/negative. https://lists.w3.org/Archives/Public/www-style/2014Oct/0480.html Further issue now - this violates "no open ranges" :( Issue: Add "none" value to scroll-snap-points-x/y Response: Did it. https://lists.w3.org/Archives/Public/www-style/2014Oct/0480.html Issue: Rename scroll-snap-coordinate to scroll-snap-target. Response: "target"+"destination" confusing, maybe rename both? https://lists.w3.org/Archives/Public/www-style/2014Oct/0480.html https://lists.w3.org/Archives/Public/www-style/2014Nov/0086.html Issue: Need to specify what happens when there's no reachable snappoint, or no snappoints at all. Propose that no snapping occurs if there are none, or that we scroll as far as possible toward the snappoint if it's unreachable. Issue: Concern wrt implementability of resnapping to layout changes Issue: Clarify whether JS scrollTop setting causes resnapping https://lists.w3.org/Archives/Public/www-style/2015Jan/0009.html Issue: What behavior when start/end of scroll container aren't snappoints? Issue: Maybe specify how a fast fling can "skip over" snap points? Issue: HANDLE OVERLY-LARGE ELEMENTS https://lists.w3.org/Archives/Public/www-style/2015Mar/0153.html Issue: Removing 'elements' keyword makes it tricky to turn snapping off Response: (rakow) Use scroll-snap-type as toggle https://lists.w3.org/Archives/Public/www-style/2015Mar/0154.html Issue: Layout affecting whether scrollbars appear can affect snapping containership Response: (rakow) Switched to keying off of 'overflow' computed value https://lists.w3.org/Archives/Public/www-style/2015Mar/0154.html Issue: Need to consider 'overflow: hidden' https://lists.w3.org/Archives/Public/www-style/2015Mar/0156.html Response: (rakow) Key off 'scroll' or 'auto'? https://lists.w3.org/Archives/Public/www-style/2015Mar/0157.html https://lists.w3.org/Archives/Public/www-style/2015Apr/0103.html Issue: Handle overly-large elements (don't snap when the next snappoint is well off the screen). --Are you sure about that? I thought the issue was about scoping -- don't snap to points off the screen, even if all items are small. https://lists.w3.org/Archives/Public/www-style/2015May/0248.html Issue: scroll-snap-coordinate needs per-axis control https://lists.w3.org/Archives/Public/www-style/2015May/0282.html Issue: Elements value is needed to trap scroll-snap contributions, for cases where author decides to remove scrollability. Response: (smfr) Less sure about this now... https://lists.w3.org/Archives/Public/www-style/2015Jun/0147.html Issue: Repeat seems unnecessary Issue: Current proposal doesn't handle varying viewport sizes (overlarge elements issue) Issue: Authors want snapping to boxes https://lists.w3.org/Archives/Public/www-style/2015Jun/0147.html Issue: Nested scrollers issue -- need scrollers to trap snappoints Response: (majid) Separate capture from snapping https://lists.w3.org/Archives/Public/www-style/2015Jun/0159.html Response: (rakow) Need some way to specify capture, maybe "elements"? https://lists.w3.org/Archives/Public/www-style/2015Jun/0376.html Response: (majid) That doesn't prevent pass-through on scrollers. Need to be associated to nearest scrollable ancestor, but only snap if 'elements' is specified. https://lists.w3.org/Archives/Public/www-style/2015Jul/0035.html Response: (rakow) * Scrollability is defined by 'auto' or 'scroll' computed value * Scrollability in an axis captures snappoints in that axis * Do we really need snapping to pass through per axis? * Priorities of nested snapping vs 2D snapping? https://lists.w3.org/Archives/Public/www-style/2015Jul/0457.html https://lists.w3.org/Archives/Public/www-style/2015Jun/0148.html Issue: How to determine what element handles the snappoints of its descendants. In particular, how do abspos work when there's a scroll container between them and their containing block? Response: (rakow) Should use containing block chain, but need term https://lists.w3.org/Archives/Public/www-style/2015Jun/0376.html https://lists.w3.org/Archives/Public/www-style/2015Jun/0150.html Issue: Define interaction of scroll-snap-points-x/y and scroll-snap-coordinate https://lists.w3.org/Archives/Public/www-style/2015Jun/0159.html Note: FF implements axis-separate snap-type Issue: Scroll-snap-coordinate needs x/y longhands https://lists.w3.org/Archives/Public/www-style/2015Jun/0170.html Issue: 1D vs 2D snapping https://lists.w3.org/Archives/Public/www-style/2015Jun/0230.html Issue: Snapping behavior for DOM APIs: scrollTo/scrollLeft/scrollTop/scrollIntoView Response: (roc) No snapping for DOM Apis, but add 'snap' value to ScrollOptions https://lists.w3.org/Archives/Public/www-style/2015Jun/0231.html Response: (rakow) Always snap to snappoints https://lists.w3.org/Archives/Public/www-style/2015Jun/0376.html https://lists.w3.org/Archives/Public/www-style/2015Jul/0036.html Issue: Handle calc() values in repeat() Issue: Handle 0 in repeat() Response: (tab) Use 1px as enforced minimum https://lists.w3.org/Archives/Public/www-style/2015Jul/0075.html https://lists.w3.org/Archives/Public/www-style/2015Jun/0376.html Issue: Adding back 'elements' should make snap-points-x/y and elements mutually exclusive Response: (majid) Are there really no merged use cases? https://lists.w3.org/Archives/Public/www-style/2015Jul/0035.html Response: (rakow) Can't think of a single one https://lists.w3.org/Archives/Public/www-style/2015Jul/0453.html https://lists.w3.org/Archives/Public/www-style/2015Jul/0035.html Issue: Way to make start/end of scrollable area snappable Response: (rakow) Can't see a use case -- interval syntax includes it implicitly, and for elements, there's no element there anyway https://lists.w3.org/Archives/Public/www-style/2015Jul/0453.html Issue: Scroll APIs need to be able to evade snap restrictions https://lists.w3.org/Archives/Public/www-style/2015Jul/0046.html Issue: Having some JS operations snap and others not is weird https://lists.w3.org/Archives/Public/www-style/2015Jul/0085.html Issue: Add 'snap' parameter to scroll APIs: preserves back compat and expectations, but allows snapping when wanted https://lists.w3.org/Archives/Public/www-style/2015Jul/0452.html Response: No, really, we need to resnap always otherwise authors have to do it themselves manually. https://lists.w3.org/Archives/Public/www-style/2015Jul/0458.html Issue: How do we react to a snappoint that goes away? (Element deleted, style modified to remove the snap coord.) Response: (rakow) UA-defined, usually nearest or next element is good https://lists.w3.org/Archives/Public/www-style/2015Jul/0479.html Response: (roc, tab) Need to specify for interop https://lists.w3.org/Archives/Public/www-style/2015Aug/0000.html Issue: If snapping follows an element as it moves, when does this occur? Response: (rakow) After OM/layout/display competes, provided no active scroll event https://lists.w3.org/Archives/Public/www-style/2015Jul/0479.html https://lists.w3.org/Archives/Public/www-style/2015Aug/0000.html Issue: How should we react to a snappoint outside the scrollable area? MS seems to consider it "invalid", Safari keeps it choosable and scrolls as close as possible if it's chosen. (Consider behavior when an element moves and its corresponding snappoint shifts slightly outside the scrollable area.) https://lists.w3.org/Archives/Public/www-style/2014Oct/0029.html Issue: No use-case for scroll-snap-points-x/y. Just drop it. Issue: scroll-snap-coordinate needs to allow specifying which box to use (margin vs border) Issue: scroll-snap-coordinate/destination are terrible names.