- From: CSS Meeting Bot via GitHub <noreply@w3.org>
- Date: Wed, 11 Mar 2026 15:38:52 +0000
- To: public-css-archive@w3.org
The CSS Working Group just discussed `[css-values] Grammar syntax for defining excluded idents for <custom-ident> productions`, and agreed to the following: * `RESOLVED: we add a new ! brackets group to the custom-ident terminal to add keywords which are excluded from production` * `RESOLVED: Adopt <'property'> = <custom-ident ![ none | foo | bar | <non-terminal> | something-long ]>` <details><summary>The full IRC log of that discussion</summary> <ydaniv> TabAtkins: this one is about how custom-ident does not match<br> <ydaniv> ... Sam wanted to make it explicit in the grammar<br> <TabAtkins> <'property'> = <custom-ident> - [ none | foo | bar | baz | something-long ]<br> <romain> +1<br> <ydaniv> ... there are a lot of proposals for syntax, I slightly prefer a - combinator<br> <ydaniv> ... you must have a custom-ident on the left, and on the right the keyword<br> <TabAtkins> <'property'> = <custom-ident -[ none | foo | bar | baz | something-long ]><br> <ydaniv> ... other suggestions are to put it directly into the custom-ident<br> <ydaniv> ... ok with any proposal if anyone has strong opinion<br> <fantasai> <'property'> = <custom-ident ![ none | foo | bar | baz | something-long ]><br> <fantasai> was also proposed<br> <astearns> ack fantasai<br> <ydaniv> fantasai: unless we want to make this a general combinator, ...<br> <ydaniv> ... we should keep it inside the brackets<br> <ydaniv> ... otherwise it would be the [missed] operator<br> <astearns> s/[missed]/tightest<br> <TabAtkins> s/\[missed\]/tightest/<br> <ydaniv> ... between the 2 things I posted, if it's a combinator I prefer the -<br> <ydaniv> fantasai: the brackets serve as a grouping operator<br> <kizu> q+<br> <astearns> ack kizu<br> <fantasai> s/prefer the -, and if it's incorporated, I prefer the !. - reads like a dash, which we use for other purposes/<br> <ydaniv> kizu: off topic a bit, but nice to have for @property to use this there as well<br> <astearns> s/prefer the -/prefer the !/<br> <ydaniv> TabAtkins: after we resolve please open an issue on that<br> <ydaniv> kizu: sure<br> <weinig> q+<br> <fantasai> s/prefer the !/prefer the -, and if it's incorporated, I prefer the !. - reads like a dash, which we use for other purposes/<br> <astearns> ack weinig<br> <fantasai> s/prefer the -/prefer the - because it feels more like a combinator/<br> <romain> slight preference for <custom-ident ![ none | foo | bar | baz | something-long ]><br> <ydaniv> weinig: fine with anything, I think for those who wanted to do more, would be good to aggregate what's not specified by the grammar and add that as well<br> <ydaniv> ... but interested in how we can get this done better<br> <dbaron> I somewhat like weinig's original suggestion of excludes=<br> <ydaniv> astearns: sounds like we're converging around using !<br> <ydaniv> dbaron: not a strong opinion but I kind of like the original suggestion of excludes but could be too verbose<br> <ydaniv> TabAtkins: don't mind, all reasonable<br> <ydaniv> fantasai: we don't really use a keyword exclusion operator<br> <TabAtkins> current modifiers are just: a plain `[...]` bracket, for ranges, and now would add `![...]` bracket for exclusions<br> <ydaniv> astearns: as spec production would be nice to have, a readable keywords seems ok to me<br> <TabAtkins> Notably CSS is the rare language where ! does *not* meant "not" lol<br> <ydaniv> fantasai: this would be the first place where we have a syntactic operator, and not need to go in that direction<br> <ydaniv> TabAtkins: leaning towards what fantasai said<br> <fantasai> s/we have/we'd have an identifier as/<br> <ydaniv> astearns: dbaron you want to argue more for the keyword?<br> <ydaniv> dbaron: ok with !<br> <fantasai> PROPOSED: <'property'> = <custom-ident ![ none | foo | bar | baz | something-long ]><br> <ydaniv> PROPOSED RESOLUTION: we add a new ! brackets group to the custom-ident terminal to add keywords which are excluded from production<br> <ydaniv> astearns: objections?<br> <ydaniv> RESOLVED: we add a new ! brackets group to the custom-ident terminal to add keywords which are excluded from production<br> <fantasai> RESOLVED: Adopt <'property'> = <custom-ident ![ none | foo | bar | <non-terminal> | something-long ]><br> </details> -- GitHub Notification of comment by css-meeting-bot Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/11924#issuecomment-4040111909 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 11 March 2026 15:38:53 UTC