- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Fri, 7 Dec 2012 09:10:58 -0800
- To: "L. David Baron" <dbaron@dbaron.org>
- Cc: www-style list <www-style@w3.org>
On Wed, Dec 5, 2012 at 11:25 PM, L. David Baron <dbaron@dbaron.org> wrote:
> I recently noticed a relatively major omission in
> http://dev.w3.org/csswg/css-variables/ : it doesn't say anything
> about the or the error handling for *uses* of variables.
>
> In particular, declarations that use variables in the value are
> preserved for later variable substitution, at which point either the
> variable substitution works or the declaration is invalid at
> computed-value time.
>
> However, the specification doesn't define which declarations get
> preserved until computed value time for this process to happen.
>
> I'd like to propose that this preservation (and the resulting
> cascading) should happen for any declaration (of any property) that:
> (a) meets all the syntactic requirements for the value of a
> variable property
> (b) contains at least one "var(" function token
> (c) has every "var(" function token followed (through the matching
> ')' token) by syntax that is a valid var() function in this
> level of the specification
>
>
> For example, this would mean that:
> background: red;
> background: var(undefined-variable);
> would produce a transparent background, as would:
> background: red;
> background: var(undefined-variable, bad fallback syntax);
> but that:
> background: green;
> background: var(undefined-variable, bad fallback syntax,
> third argument not in this level of CSS);
> would produce a green background since the second declaration would
> be thrown out because of point (c).
I'm pretty sure I had text about this, actually. It must have gotten
lost when I punted parent-var() to the next level.
In any case, I'm in favor. I'll add a paragraph about this.
(Note that your third example is actually valid - the definition of
<fallback-value> is so broad that it includes DELIM(,) tokens, so the
fallback value is "bad fallback syntax, third argument not in this
level of CSS".)
~TJ
Received on Friday, 7 December 2012 17:11:46 UTC