- From: François REMY <francois.remy.dev@outlook.com>
- Date: Wed, 4 Dec 2013 16:58:39 +0100
- To: <robert@ocallahan.org>, "'www-style'" <www-style@w3.org>
| Can we change the name of the spec to css-scrollsnap?
| We don't snap to points, but to edges.
Looks reasonable to me.
| For that reason, I think scroll-snap-points-x/y should be
| renamed to scroll-snap-positions-x/y.
This looks more verbose to me, and not much more informative than the previous one.
That being said, I was asking myself the question why we needed a new grid-definition language here. I'm in favor of simply reusing the "grid-template" syntax in a "scroll-snap-template" property : this would enable visual editors to be reused, and reuse existing mental models.
I'm pretty sure that, in a lot of useful cases, we already have to handle the snapped scroll on a grid, and we could therefore even have
(1) "scroll-snap: mandatory from-grid(*:*)" which means "use as mandatory snapping-lines all rows and all columns of the computed value of the grid template"
or
(2) variants like "scroll-snap: mandatory none from-grid('start', 'separator', 'end' : *)" which means "use as mandatory horizontal snapping-lines the vertical lines from the grid named 'start', 'separator' or 'end', do not define any vertical snap-mechanism".
A solution like this one would maybe reduce the need for the "descendant-based snapping lines" mechanism you described a bit further in the mail, since you could achieve the same result at the parent level using a grid, which may be simpler to implement than creating deep scroll-snapping dependencies (that may be worth at some point, but we may refrain from including this in L1 in order to make some progress implementation-wise asap).
| scroll-snap-type seems unnecessarily verbose. I suggest we
| just use scroll-snap.
By convention, "scroll-snap" should be a shorthand for all "scroll-snap-xxxx" properties so this isn't what we want here, I guess. That doesn't mean we don't want a "scroll-snap" property, but it has be usable for defining the positions/templates too.
| I think independent control over vertical and horizontal snapping
| will be very useful. (E.g, vertical scrolling through a list of items,
| some of which may overflow horizontally.) I propose making
| scroll-snap a shorthand for scroll-snap-x and scroll-snap-y.
+1
| What should happen when we're currently snapped to an edge and
| that edge moves? (E.g. due to dynamic changes to the
| scroll-snap-positions-x/y properties, or due to a layout change moving
| an edge induced by an element with scroll-snap-edge?) In proximity
| mode I guess it's OK to just do nothing. But in mandatory mode, I think
| we should re-snap to the nearest snapping edge, or something like that.
Looks reasonable, too.
The behavior could be undefined (aka platform dependent) for proximity,
and defined for mandatory (aka always resnap).
| I have a proposal for a scroll-snap-edge property that adds edges of an
| element's margin-box or border-box to the list of allowable snapping
| positions. I think in most cases this is simpler and more robust than
| scroll-snap-positions-x/y. I would like this, or some version of it, to be
| incorporated into the spec.
|
| The details are here: https://wiki.mozilla.org/index.php?title=Gecko:CSSScrollSnapping
+1
Received on Wednesday, 4 December 2013 15:59:13 UTC