- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Mon, 31 Mar 2014 13:23:47 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Jonathan Kingston <jonathan@jooped.co.uk>, www-style list <www-style@w3.org>
On Sat, Mar 29, 2014 at 3:52 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > On Sat, Mar 29, 2014 at 3:31 AM, Jonathan Kingston > <jonathan@jooped.co.uk> wrote: >> Hi All and Tab Atkins jr, >> >> After careful review of the following message, I think I get the motivation >> for this change a lot more than changing the syntax for variables. >> http://lists.w3.org/Archives/Public/www-style/2014Mar/0467.html >> >> Would it be worth instead of dropping the "--" prefix when in "var()" scope >> dropping the use of "var()" when and where the parser could cope? > > Note - we don't drop the -- prefix when putting a custom property name > in var(). Your examples below acknowledge this, so you may already be > aware. > >> So for example, the following would be an issue >> height: --profile-image-heightpx; >> So var would be used: >> height: var(--profile-image-height)px; >> >> However this would be fine: >> color: --profile-heading-color; >> >> This would give a similar feel to variable interpolation in many other >> languages and template engines - it may also break the boundaries more of >> users thinking it's main use is for variables. > > Unfortunately, this isn't great. There are already a few places in > CSS that accept <custom-ident> values, which technically allow > precisely this syntax, and so there would be ambiguity. > > We could potentially disallow <custom-ident> from having a -- prefix, > so there was no ambiguity, but then we're splitting syntax hairs, > which tends to be very confusing for authors. (Having to remember > that X values uses the Y grammar, but not quite, because it excludes Z > and W, is very difficult for people in practice, though it always > sounds like it should be easy.) > > There's also the fact that a plain ident doesn't "jump out" very much, > at least not as much as a function like var(). This is one of the > benefits of var() - it's *immediately obvious* when you're using a > variable, which is perceived as a benefit. > > Finally, even if we allowed this, we'd still need to *also* allow > var(), so that you could do things like fallbacks. Having two > syntaxes for doing the same thing is another thing that leads to > confusion for authors, and we try to avoid it when we can unless > there's a really good benefit. > > ~TJ > (For the sake of symmetry) why not to use var(name) as a name of CSS property ? So it will be something like this: div { var(profile-image-height) : 64px; } div > img { height: var(profile-image-height); } If UA does not understand that construct it will drop both declarations all together. (my pardon for repeating my question again) -- Andrew Fedoniouk. http://terrainformatica.com
Received on Monday, 31 March 2014 20:24:14 UTC