Hi there,

I would like to add some new features to the skinning portion of Trinidad, and I wanted to make sure no one had any concerns.

Basically, I'd like to allow the skinning person to define styles that are specific to a platform, an agent, and/or a language. Today in Trinidad, the user can create a different skin for each combination, and write skin-switching logic to switch between the skins depending upon the platform, the agent, and the language the request is coming from. I think that could get complicated, and seems hard to maintain.

I am proposing that we create skinning syntax for specifying styles for a specific platform, agent, and/or language. The syntax for platform and agent will follow css2's @media syntax, and the syntax for the language support will use css2's existing :lang() pseudo-class (but we'll parse it into our internal data-structure).

Here is an example of using @platform and @agent:

/* if platforms is windows or ppc and if the agent is ie, then use ie's hand cursor for the column's sortable header text
*/
@platform windows, ppc {
 @agent ie {
   af|column::sortable-header-text {
     cursor: hand;
   }
 }
}


Here is an example of using the :lang pseudo-class.
/* change the default font family when the language is ja or zh-TW */
.AFDefaultFontFamily:alias:lang(ja),
.AFDefaultFontFamily:alias:lang(zh-TW) {
 font-family:Albany WTJ, Dialog;
}

The @agent feature is particularly useful if the skinning person is creating components that use ie-specific or gecko-specific css styles. They can use @agent ie {} for the ie-specific styling and @agent gecko {} for the gecko-specific styling, and when Trinidad parses the skinning css file and creates the css2 file that the page links to, it will only add the style selectors/properties for the particular platform/agent/language. Note that the css2 file that we generate from the skinning css file is specific to the end user's platform/agent/language.

Let me know if you have any questions, comments, or concerns. I'll open an issue and start implementing it if no one has any major concerns.

Thanks!
Jeanne

Reply via email to