- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 28 Feb 2013 17:45:49 -0800
- To: John Daggett <jdaggett@mozilla.com>
- Cc: www-style list <www-style@w3.org>
On Wed, Feb 27, 2013 at 5:51 PM, John Daggett <jdaggett@mozilla.com> wrote:
> Tab Atkins wrote:
>> > In fact, I don't quite see the point of this interface, the sole
>> > purpose seems to be to prepend "var-" on to the property name
>> > before calling getProperty/setProperty/removeProperty. Is that
>> > really needed?
>>
>> If that was all it did, it would still be convenient - normally,
>> properties are exposed on CSSStyleDeclaration as properties, using a
>> dashes-to-camelcase conversion. This obviously doesn't work for
>> custom properties, because it would map both "var-foo" and "var-Foo"
>> to "style.varFoo". You'd be forced to only use the
>> getProperty/setProperty methods, which *nobody* uses in practice.
>> The CSSVariablesDeclaration interface fixes this - as long as the
>> variable name matches JS property rules, you can use it directly,
>> without conversion or ambiguity.
>>
>> It does more, though - it exposes only the custom properties that
>> are actually set. This is different from CSSStyleDeclaration's
>> normal behavior, which is to expose every property. This makes it
>> convenient for things like iterating over all the custom properties,
>> which I think will be useful for JS that is using custom properties
>> as a data channel for polyfills or the like.
>
> Ah, I think I get it now. So the following examples below would
> be valid/invalid as described:
>
> div {
> var-foo: 16px;
> var-Bar: red;
> var-foo-bar: 50%;
> }
>
> el.style.var.foo = "30px"; // valid
> el.style.var.Bar = "blue"; // valid
> el.style.varFoo = "50%"; // invalid - camel-cased var props not supported
> el.style.varfoo = "16pt"; // invalid - as above, irrespective of casing
> el.style.var.foo-bar = "red"; // invalid - not valid JS ident syntax
> el.style.var["foo-bar"] = "red"; // valid
>
> Are these variations correct?
Yes.
> I think it would be really helpful to have a section 4.3 with examples
> of this sort to illustrate common usage patterns.
Thanks for the examples! I copied them into an example in the spec. ^_^
~TJ
Received on Friday, 1 March 2013 01:46:36 UTC