- From: Romain Menke via GitHub <sysbot+gh@w3.org>
- Date: Sat, 15 Oct 2022 07:52:00 +0000
- To: public-css-archive@w3.org
> The logic for expanding it into longhands
The core of this proposal is a simple system of "slots".
- 3 properties (3 times `"anything"`)
- 2nd property takes 3 values
```
syntax: "<color>"
"<text-decoration-line> <text-decoration-style> <text-decoration-color>"
"<ident>";
```
Equivalent to :
```
syntax: "a"
"b b b"
"c";
```
If this system is in any way ambiguous it can not be implemented.
So it is correct that `|`, `?`, `*` are also problematic.
`|` would be ok with more rules.
- yes : `<color> | [ red | blue ]`
- no : `<color> | [ red | [ blue 2px ] ]`
Avoiding the syntax definitions entirely and using `"a" "b b b" "c"` literally might be better? Authors already know this format from grid.
This does not actually remove any type information because the properties and order are known.
```css
@property --some-shorthand {
syntax: "a"
"b b b"
"c";
constituent-properties: color text-decoration display;
values: ...;
}
```
- `a` : `<'color'>`
- `b` 1 : `<'text-decoration-line'> | <'text-decoration-style'> | <'text-decoration-color'>`
- `b` 2 : `<'text-decoration-line'> | <'text-decoration-style'> | <'text-decoration-color'>`
- `b` 3 : `<'text-decoration-line'> | <'text-decoration-style'> | <'text-decoration-color'>`
- `c` : `<'display'>`
Users can not deviate from the template defined with `syntax` but the result is unambiguous and enables the core feature.
--
GitHub Notification of comment by romainmenke
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7879#issuecomment-1279688467 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Saturday, 15 October 2022 07:52:02 UTC