Re: [css-scroll-snap] Splitting scroll-snap-type, shorthanding on scroll container

On 24 November 2015 at 23:31, fantasai <fantasai.lists@inkedblade.net> wrote:
> The current 'scroll-snap-type' property takes two different,
> and orthogonal, sets of values:
>   https://drafts.csswg.org/css-scroll-snap/#snap-type
>
> scroll-snap-type: none | [ proximity | mandatory ] || [ x | y | block |
> inline | both | point ]
>
> There are the “strictness” values and the “axis” values.
>
> We're thinking it would make sense to have a shorthand
> and two longhands here. The question is, what are they
> all called?
>
> I've come up with four ideas so far:
>
>   a) scroll-snap         -> scroll-snap-type / scroll-snap-axis
>   b) scroll-snap         -> scroll-snap-capture / scroll-snap-axis
>   c) scroll-snap-type    -> scroll-snap-capture / scroll-snap-axis
>   d) scroll-snap-capture -> scroll-snap-type / scroll-snap-axis
>
> I'm not super keen on any of them and welcome other ideas.
>
> My main reservation with a) and b) is that 'scroll-snap'
> might be better used as a shorthand for 'scroll-snap-align'
> and 'scroll-snap-area', which are set on descendants of the
> scroll container...

I agree that 'scroll-snap' should rather be a shorthand for
'scroll-snap-align' and 'scroll-snap-area' and probably also for
'scroll-snap-padding'.

As the strictness and the axis are connected and I assume they won't
get changed that often once set, I'd rather keep the current
definition of 'scroll-snap-type' and not add longhands for it.
Though if people like to have longhands, I'd prefer them to have the
shorthand as prefix. This makes it easier to identify their relation.
E.g. if 'scroll-snap-type' is the shorthand, the longhands could be
something like 'scroll-snap-type-capture' and 'scroll-snap-type-axis'.

To me the difference between the 'both' and 'point' values is not
clear yet, or more precisely the difference between two 1D snap
positions vs. one 2D snap position.
So assuming those values could be removed, the property could also be
split up in two, one for each axis. So we'd have
'scroll-snap-type-block' and 'scroll-snap-type-inline'.

Sebastian

Received on Tuesday, 8 December 2015 13:06:25 UTC