Re: [csswg-drafts] [css-values] Automatic parsing of value definitions

> Some values need that such as glyph-orientation-vertical

Wow, this is just written very badly. That's totally invalid syntax, and should instead be `auto | <angle> | <number>`, with prose manually limiting the values to just 0/90/0deg/90deg. (I have no idea why they're trying to outlaw using the other angle units, as that should actually be *harder* to do than just accepting them. Without some specified rounding behavior there's no way to specify 90deg precisely in `rad`, but `grad` and `turn` are fine.)  The whole property's legacy syntax is kinda a garbage fire, tho.

> font-weight

This was fixed, as you noted.

>  `<feature-type>`

This is valid; it's using the extended Value Definition Syntax for rules defined in <https://drafts.csswg.org/css-syntax/#rule-defs>.

> The syntax does not describe the use of = to define expansion rules of non-terminals. 

Yes, this is hand-wavey. I'd be happy to work out a more precise syntax for it. Updating every single spec is more work, of course. ^_^

> Some specs extend the definition of a property with a "New value" field, which we understand must be combined with the actual definition with a | combinator. Unless we missed something, this is not described anywhere though.

Correct on both counts.

> The syntax talks about quotes, but does not explicitly define which quotes to use. Curly quotes get used in practice in most specs. We were rather reading "single quotes" as meaning the apostrophe ' character, still used in other specs (such as in CSS 2.2). Anything is fine, but it would be good to make that explicit in the Value Syntax Definition.

They'll be single quotes in the source; curly quotes are probably coming from Bikeshed's formatting of the output.

> Some specs mix actual value definitions with prose.

Hm. 'fill' is just us sketching; that line wouldn't make it into a professional spec.  I suppose I can move the footnote markers out of the grammar and just refer to the productions more explicitly in prose.

> From time to time, some rules that could be defined with an = construct are actually defined in prose. 

I think we should encourage using =, yeah.  While technically not necessary for linking purposes (Bikeshed takes care of things already), it makes things a bit clearer, I think.

> The syntax does not allow to define apparently "simple" things such as ranges or regular expressions. We noted the discussion in w3c/csswg-drafts#355, so that's probably under way.

Ranges, yeah. Regexes unlikely to show up - what's the use-case for them?

> All in all, what we're wondering is whether it could be useful to end up with a CSS Value Definition Syntax that would allow the creation of a dump similar to the IDL index that appear at the end of API specs. 

Hmm, maybe. It seems less directly useful than the IDL index, but I'm not opposed to such a thing.

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

Received on Monday, 16 July 2018 20:47:32 UTC