- From: Tab Atkins Jr. via GitHub <sysbot+gh@w3.org>
- Date: Fri, 02 Feb 2024 23:59:23 +0000
- To: public-css-archive@w3.org
All right, Elika and I discussed this today, and agree the syntax can be improved a bit. First, to let us remove the slash (getting closer to `<position>`, as Elika just suggested), we have two possible syntax suggestions: ``` <inset-area-alpha> = [ [ left | center | right | center-left | center-right | x-start | x-end | center-x-start | center-x-end | x-self-start | x-self-end | center-x-self-start | center-x-self-end | all ] && [ top | center | bottom | center-top | center-bottom | y-start | y-end | center-y-start | center-y-end | y-self-start | y-self-end | center-y-self-start | center-y-self-end | all ] | [ block-start | center | block-end | center-block-start | center-block-end | self-block-start | self-block-end | center-self-block-start | center-self-block-end | all ] && [ inline-start | center | inline-end | center-inline-start | center-inline-end ] | self-inline-start | self-inline-end | center-self-inline-start | center-self-inline-end | all ] | [ start | center | end | center-start | center-end | all ]{1, 2} | [ self-start | center | self-end | center-self-start | center-self-end | all ]{1, 2} ] <inset-area-beta> = [ [ left | center | right | span( left || center || right ) | x-start | x-end | span( x-start || center || x-end ) | x-self-start | x-self-end | span( x-self-start || center || x-self-end ) | all ] && [ top | center | bottom | span( top || center || bottom ) | y-start | y-end | span( y-start || center || y-end ) | y-self-start | y-self-end | span( y-self-start || center || y-self-end ) | all ] | [ block-start | center | block-end | span( block-start || center || block-end ) | self-block-start | self-block-end | span( self-block-start || center || self-block-end ) | all ] && [ inline-start | center | inline-end | span( inline-start || center || inline-end ) | self-inline-start | self-inline-end | span( self-inline-start || center || self-inline-end) | all ] | [ start | center | end | span( start || center || end ) | all ]{1, 2} | [ self-start | center | self-end | span( self-start || center || self-end ) | all ]{1,2} ] ``` In `alpha`, we just specify the two-region values with a dashed `center-*` keyword, so if you want to fill the left and center columns, you write `center-left`. In `beta`, we have the `span()` function, which takes two keywords and spans between them, so you'd instead right `span(left center)`. (The grammar is a little loose above, for readability; it would actually need to be `span( [left && [center | right]] | [right && [center | left]] )`, to guarantee two keywords get specified.) In either case, the 2-track values are now single components, so we no longer need the slash. To fill just the upper-left and upper-center regions, you could say `center-left top` or `top center-left` (or equivalently, `span(left center) top`, for beta). We think we mildly prefer the dashed version over the span() version, but will leave the choice up to the WG. ----------- For the "single-value is a little confusing", we agree, and think Miriam's suggestion is reasonable. So: Single keyword defaults other axis to: * duplication if keyword is axis-ambiguous (start/self-start/center/end/self-end) * all in all other cases And then we'd probably want to sync this with `<position>`. Currently, we just disallow saying `start` by itself (you must specify two keywords if they're axis-ambiguous), but we think it would be reasonable to adopt a similar "duplicate if axis-ambiguous, `center` otherwise" rule, so `background-position: start` would be equivalent to `start start`. -- GitHub Notification of comment by tabatkins Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9862#issuecomment-1924919417 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Friday, 2 February 2024 23:59:26 UTC