Add the ability to define skinning variables so things like colors can be abstract configurations not tied to specific color uses like border-color ---------------------------------------------------------------------------------------------------------------------------------------------------
Key: TRINIDAD-1871 URL: https://issues.apache.org/jira/browse/TRINIDAD-1871 Project: MyFaces Trinidad Issue Type: Improvement Components: Skinning Affects Versions: 2.0.0-alpha Reporter: Matt Cooper A nice skinning enhancement would be to add the ability to define skinning variables so things like colors can be abstract configurations not tied to specific color uses like border-color. For discussion purposes, let's say one of these variables is defined like this: .AFSomeColor:variable { #aabbcc; } Notice that there is nothing forcing this color to be tied to a specific style property. It is just an abstract global location for defining a given color value (or background image, dimension, etc.). It is important to note that some variable may have spaces in their value. I'm also not trying to force a syntax with this example so there may be a better syntax but what you see here is just one example to get the idea across. Anyhow, once you have this variable defined, you can then use it anywhere you would type in a style value, e.g.: af|table::column-resize-indicator { border-right: 2px dotted -tr-variable-ref(".AFSomeColor:variable"); } then someone else could do this with the same variable: af|someCustomComponent { background-color: -tr-variable-ref(".AFSomeColor:variable"); } or even use that same color value in some future CSS property, e.g.: af|someCustomComponent { -fancy-browser-custom-property: -tr-variable-ref(".AFSomeColor:variable"); } If we abstracted our skins into some core variables, it would be super easy for someone to create a new skin by just changing a small number of color value variables. If we really wanted to take this to a further level, we could apply transforms to these variables. So for example, if someone defines a color variable in one location, selectors throughout the skin could consume that color variable but perform a transform on it, e.g. blend it a certain amount from that color to another color variable to create a color that is halfway between 2 colors, or to produce a desaturated version of that color value, etc. If this sounds too much like scope creep, this can be spun off into its own JIRA issue but I mention it here in case it has any impact on how this skin variable idea gets implemented. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.