- From: Chris Eppstein <chris@eppsteins.net>
- Date: Wed, 12 Mar 2014 21:40:02 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: www-style list <www-style@w3.org>
_property is a common CSS hack targeting IE6. So those in-the-wild stylesheets would suddenly start being interpreted as variables by modern browsers. Maybe not a big deal... Aesthetically, I find underscores in CSS files displeasing. An issue we're bumping into in the sass community now is namespace collisions from 3rd-party libraries. It would be nice if CSS could avoid our mistake by forcing a namespace for custom properties. Is there any reason we can't use dot notation for this? div { my.color: red; bootstrap.color: blue; color: my.color; background-color: bootstrap.color; } And yes, I think we should have right hand side symmetry with the declaration. Chris > On Mar 12, 2014, at 8:38 PM, "Tab Atkins Jr." <jackalmage@gmail.com> wrote: > > I've been thinking. > > At the last f2f, I proposed custom MQs and pseudo-classes. To > distinguish them from CSS-defined ones, I mandated that they had to > start with (or perhaps just contain) an underscore character, because > this is a valid character that CSS is nevertheless never going to use > in language-defined names. > > This, while a little ugly, seems to do the job pretty well. > > Simultaneously, I'm wrestling with the fact that basically nobody > understands that one of the primary use-cases of Custom Properties is > to do CSS polyfills, where you write your own properties with a "var-" > prefix and interpret them with JS. This avoids the "have to re-parse > the whole stylesheet yourself, and woe unto you if it's cross-origin" > problem that today's CSS polyfills have. From what I can tell, it's > the "var-" prefix that's misleading everyone - it's *so* closely tied > to var(), mentally, that it prevents people from imagining any other > use. > > Given that "tie it to var()" was one of my explicit justifications for > sticking with the "var-" prefix, I'm very aware of how much I've > hoisted myself by my own petard. > > So, suggestion. Assuming that we're sticking with the underscore > thing for custom MQs/pseudo-classes/etc, I think we should move the > syntax of Custom Properties to "any ident starting with/containing an > underscore" as well. This'll tie the syntax more closely to the > *other* "custom" things, which hopefully will lead to it being more > obvious that this is literally a CUSTOM PROPERTY, not just a variable > definition. > > The var() syntax is unchanged - the argument just switches to being > literally the property name, rather than the property name minus the > prefix. > > I talked to heycam about this a few hours ago, and he said that > Firefox is ready to ship Variables Real Soon Now, but this is a minor > enough change that it can be swapped in real quick and not delay > shipping if we decide on it quickly. > > I've given myself a self-imposed deadline of until the next conf call > to decide on this; if we say nay, or just don't decide, I'll happily > stick with what's currently in the draft, and let Firefox ship with > it. However, I'd like to spend the next week deciding whether we > should change the spec on this or not. > > Thoughts? > > ~TJ >
Received on Thursday, 13 March 2014 04:40:32 UTC