- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 24 May 2012 10:06:17 -0700
- To: Florian Rivoal <florianr@opera.com>
- Cc: Ojan Vafai <ojan@chromium.org>, www-style@w3.org
On Thu, May 24, 2012 at 12:29 AM, Florian Rivoal <florianr@opera.com> wrote: > On Wed, 23 May 2012 19:32:50 +0200, Tab Atkins Jr. <jackalmage@gmail.com> > wrote: >> In the new syntax, it would look something like this: >> color: $bar //normal >> color: default-var($bar, red) // default value >> color: parent-var($bar) // bar from the parent >> color: parent-var($bar, red) // bar from the parent, with a default value > > > If we go with $ (which I still think we shouldn't), I think the above should > be written like this instead: > > color: $bar //normal > color: default-var(bar, red) // default value > > color: parent-var(bar) // bar from the parent > color: parent-var(bar, red) // bar from the parent, with a default value > > Keeping the $ within the function, seems to imply that you want to expand > the variable first, and then apply the function, giving the following > behavior: > > ul { > $foo: red; > $bar: green; > } > li { > $foo: bar; > $bar: blue; > $background-color: parent-var($foo); /* you get green */ > } > > Also, having the following two be equivalent > color: $bar; > color: var(bar); > Makes it possible to have multiple levels of indirection. Which you can't > have with $, unless you want to allow this: > color: $$bar; As much as possible, I prefer to have the syntax be consistent. Having to remember that you use the $ in some circumstances but not others is an annoying mental step. In other words, the $ is *not* just a disambiguator, it's actually part of the name. I don't think multiple indirection has a use-case right now. If it ends up being useful, we can figure it out then; there are several syntax possibilities that are compatible with my current proposal. ~TJ
Received on Thursday, 24 May 2012 17:07:06 UTC