- From: Simon Sapin <simon.sapin@exyr.org>
- Date: Thu, 23 Jul 2015 17:09:47 +0200
- To: www-style <www-style@w3.org>
- Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, Cameron McCormack <cam@mcc.id.au>
https://drafts.csswg.org/css-variables/#invalid-variables > A declaration can be invalid at computed-value time if it contains a > var() that references a custom property with its initial value, as > explained above, or if it uses a valid custom property, but the > property value, after substituting its var() functions, is invalid. > When this happens, the computed value of the property is either the > property’s inherited value or its initial value depending on whether > the property is inherited or not, respectively, as if the property’s > value had been specified as the unset keyword. If that property happens to be a custom property, this text says that it should get its inherited value. (Since all custom properties are inherited.) Firefox however gives it its initial value. Test case: http://dabblet.com/gist/1f0d2d5a086181e41887 html { --a: green; color: red; } body { --a: var(--b); color: var(--a); } --a on body is invalid at computed value time. Per the spec, it gets its inherited value green and body text is colored green. In Firefox, --a on body seems to get its initial value, which makes color on body invalid at computed-value time as well, causing the body text to be colored red, the inherited color value. I found this spec behavior mildly surprising compared to how dependency cycles are resolved (all custom properties involved get their initial value), but I don’t have a strong preference. -- Simon Sapin
Received on Thursday, 23 July 2015 15:10:27 UTC