- From: Roland Steiner <rolandsteiner@google.com>
- Date: Tue, 25 Oct 2011 09:45:49 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Boris Zbarsky <bzbarsky@mit.edu>, www-style@w3.org
- Message-ID: <CACFPSpgPFWVErCcskROvy1F1S2VkYd7aeV=f1qOkYtJFqimtUA@mail.gmail.com>
On Mon, Oct 24, 2011 at 23:30, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > Another thought occurs to me. Since I already want to allow variables > referring to other variables, for use in various functions and > whatnot, it seems like it would be incredibly useful to also allow you > to invoke the *inherited* value of a variable. This would allow for > some *really* useful effects, such as building up an increasing value > as you descend the DOM: > > :root { > data-indent: 10px; > } > ul { > data-indent: calc( parent-data(indent) + 10px ); > } > This is actually the default I envisioned and described for apply(). IMHO it's more general than using the current value: it avoids circular dependencies, allows for easy swapping of values without "helper properties", etc. The downside that one couldn't use the current value inside the same rule block isn't a big drawback IMHO. Rather than :root { data-foo: red; data-bar: linear-gradient(transparent, data(foo)); } you'd have to duplicate 'red' in both lines, or use another, previously-defined variable. OTOH, by using the inherited variable, one can do: div { data-foo: data(data-bar); data-bar: data(data-foo); } or even allow this to be used with non-'data' properties without causing dependency or problems with layout: [inverted] { background-color: data(color); color: data(background-color); } - Roland
Received on Tuesday, 25 October 2011 16:46:35 UTC