Re: [csswg-drafts] [css-conditional-4] Feature detection for descriptors (#2463)

Yeah, was coming here to bring up that same point; I don't think we need or want this syntax:

```css
@supports (@font-face{ src; }) {
  // yay webfonts
}
```

I didn't think about nested at-rules, hm. That's in a weird middle ground; it's not as trivial as "do we support this at-rule" nor is it as hands-off as "does this successfully parse". Instead you have to maintain a somewhat more complex side-list of "do we support this at-rule inside of this other at-rule", which is precisely the sort of thing that can easily get out-of-date or be missed when updating things (especially for catch-alls like @media or @supports). I suspect we might want to leave this out, and just stick with asking for a single level of support.

So in other words, I think we want to limit things to just:

1. Testing for the existence of an at-rule by name; `(@foo)` only, nothing else. (Meaning anything in the prelude is *also* left out, like `(@scroll-timeline)` with no name provided.) This is a manual test but it's *extremely* trivial and it's likely there's a list of valid at-rule names stashed in the impl anyway (I know Blink has one).
2. Testing full parsing of an at-rule, as an entire block of syntax: `(@scroll-timeline foo {})` is valid (needs a name in the prelude, but doesn't require any additional descriptors to validly parse); `(@counter-style foo { system: cyclic; symbols: a; })` is valid (needs a name in the prelude, the 'system' descriptor, and the 'symbols' or 'additive-symbols' descriptor); `(@counter-style foo {})` is false because it doesn't parse as a valid rule, due to missing its required descriptors; `(@font-face { unknown: property; })` is false due to having an unknown descriptor in it.

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2463#issuecomment-1015709662 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 18 January 2022 18:41:42 UTC