- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Wed, 20 Jan 2016 07:29:41 -0800
- To: Matt Rakow <marakow@microsoft.com>, "www-style@w3.org" <www-style@w3.org>
On 01/20/2016 06:55 AM, Matt Rakow wrote: >> As far as 'scroll-snap-align' goes, I think in most cases the >> important consideration is the logical direction, not the >> physical one. Consider bidi cases: if you're snapping a side >> edge, it's almost always going to be the start edge you care >> about, not the left/right edge specifically, because that's >> what matches up to the direction of scrolling. Similarly for >> vertical text: if you're snapping to the top edge in horizontal >> text, you definitely want to be snapping to the block-start >> edge in vertical writing modes, not to the block-end edge in > > any case! > > This assumes the content you are snapping is primarily text. > On the contrary, the most common scenarios are not text -- > hero flippers (e.g. MSN.com), product catalogs (e.g. Amazon.com), > filmstrips (e.g. Flickr.com), etc. are more prevalent by far. > Even many scenarios which seem to be primarily text (e.g. > address book on a phone) typically don't change orientation > on writing mode, preferring to maintain the ergonomics of a > particular scrolling direction. Sure, they might not change *orientation* by writing mode, but I would expect them to change *direction* (within the axis) by writing mode. Certainly the origin already changes by writing mode! If you are in an RTL document, a horizontal scroller will start on the right, not the left. (Note also that Flex and Grid are fully logical: if you ask for rows, you will increase in the block axis, i.e. downward in horizontal writing modes, leftward for vertical-rl, and rightward for vertical-lr. Anyone designing a consistent physical layout will need to be careful around mixed writing modes, since a lot of CSS layout is fundamentally logical...) > To clarify, the scenario I am concerned about is something like this: > > .horizontalFlipperWidget { > overflow-x: scroll; > scroll-snap-align: center none; > scroll-snap-type: mandatory; > } > > This is the number one scenario for snap points, I'd like > it to not break by default in vertical writing mode. If you write it as .horizontalFlipperWidget { overflow-x: scroll; scroll-snap-align: center; scroll-snap-type: mandatory; } or alternately as .horizontalFlipperWidget { overflow: scroll; scroll-snap-align: center; scroll-snap-type: mandatory x; } then that will work regardless of writing mode: * if only one keyword is given for an alignment, it is doubled * by default, we snap in the scrollable axis if there's only one; given overflow-x, this will be the x axis * if an axis is specified on scroll-snap-type, we only snap that axis > Definitely agree it will be good to ensure both coordinate > systems are expressible. Could this keyword also be used > for scroll-snap-align as a way to enable both? We'd go with using different words for physical vs logical values: top/left/bottom/right vs start/end, as we mentioned. See e.g. the margin-block-start property and the L4 background-position syntax. (Also, "logical top left" is weird... and English-centric.) ~fantasai
Received on Wednesday, 20 January 2016 15:30:30 UTC