- From: Simon Sapin <simon.sapin@kozea.fr>
- Date: Tue, 05 Feb 2013 12:37:49 -0700
- To: François REMY <francois.remy.dev@outlook.com>
- CC: "Tab Atkins Jr." <jackalmage@gmail.com>, www-style list <www-style@w3.org>
Le 05/02/2013 08:17, François REMY a écrit : >> The use of the value production from 2.1 isn't desirable in any case. >> What we actually want to do is simply say that it has no grammar - >> that every possible property value is valid for a custom property. >> That way, the only limitation is what is automatically imposed by the >> parser itself. > My issue is that browsers do not seem to follow any spec for their > property value syntax (because the CSS Syntax is more permissive than > any non-custom property need, and inexplicably complex). > > The 'value' grammar doesn't make any sense to me: it seem to accept > {a:a} but not {'a':'a'} or {a}. It should accept [;;] but not {;;}. I > would like the value tokenization to be redefined to be more > understandable and independant of other productions like 'block', > 'declaration' and 'property'. Hi François, As discussed in another thread and F2F yesterday, the <value> production of CSS 2.1 is more restrictive than it needs to be. Before we had variables (custom properties) it didn’t matter because any selector or property value had a more specific grammar anyway. css3-syntax now has a more precise definition of how to turn text into tokens, and tokens into "component values" (which were known as "primitives" in the draft until recently.) A property value is a list of primitives, except that ; or ! can not appear top-level because they would end the declaration. The normative definition of all this is the state machine, but I started making informative railroad diagrams of the various items in the output tree of css3-syntax parsing: http://dev.w3.org/csswg/css3-syntax/Diagrams.src.html#parsing Does this help? -- Simon Sapin
Received on Tuesday, 5 February 2013 19:38:16 UTC