With the new `style` property of <attribute> (cf., [Simple mechanism for making 
<attribute>s CSS styleable](http://bit.ly/cuZVZ5)), I'm wondering if we could 
deprecate the old `value="$style{...}"` mechanism for the case where `...` is 
_not_ a constant string.

Right now:

  <attribute ... value="$style{'css-property-name'}"

is an inferior version of:

  <attribute ... style="css-property-name"

With the latter, because `value` is not overloaded, you can specify a default 
value in addition to a css property name.  With the former, if there is no 
applicable css property, your attribute will be undefined (and you will get a 
warning in debug mode).  With the new way you can say things like:

  <attribute name="trimcolor" type="color" style="trim-color" value="fuchsia" />

---

While I am ok with supporting $style{} with a constant string as an argument, 
for backward compatibility, there is one feature of the old syntax, which is 
_not_ supported by the new syntax that I would like to eliminate.  That is the 
idea of a computed css property name.  In theory, in the old syntax you could 
say:

  <attribute ... value="$style{parent.stylemap[this.attributestyle[random()]}" 

That is, you could have the name of the CSS style be the result of a complex 
expression.  I don't see any use for this.  It's like another level of 
indirection above and beyond all the standard CSS selection/applicability 
mechanism that is already immensely complex.  If I can rule out any need for 
this level of dynamicity, I believe I can make a big optimization in CSS 
efficiency.

Is anyone using this feature of $style{} binding?





Reply via email to