incubator-adffaces-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Dickson <martin.dick...@peace.com>
Subject Re: Skins / css in Trinidad (and Tomahawk)
Date Thu, 17 Aug 2006 05:34:52 GMT
Hi Adam,

Thank you for your reply.

I must be confused then -- classic CSS as you say, allows me to 
skin/style all input fields that happen to be inside table cells (for 
example) by declaring: td input {color: blue;} etc, and specific states 
(by using attributes) such as td input[disabled], and specific instances 
by using ids (or more likely just other classes), and so forth... which 
Trinidad then replicates (with additional work) by parsing and injecting 
the CSS, although I agree entirely that if Trinidad does this 
transparently then it is just an implementation detail as far as the UI 
designer is concerned.

However -- although this may well be our lack of familiarity with the 
system -- it currently appears to prevent me from doing some of the 
things I've been doing with Tomahawk.  For one thing, we been using "CSS 
Sprites" for all our icons 
(http://www.alistapart.com/articles/sprites/), using the additional 
classes (and the :hover pseudo class), to switch background images.  
Trying this today with the Trinidad Shuttle component (add / remove 
images) did not appear to work, as the full (squashed) image was 
displayed rather than only part.  Again, this may be my/out lack of 
understanding, but at the moment it appears to be an impediment rather 
than an advantage, and based on the currently available documentation I 
cannot see how to get around this.

If there is further documentation available that explains the advantages 
of this skinning approach I would be very keen to read and understand 
it.  I can't help but feel that wiser folk than I am think this is a 
good approach and am concerned that I don't see it (yet). :-)

Regards,
Martin

Adam Winer wrote:

> On 8/16/06, Martin Dickson <martin.dickson@peace.com> wrote:
>
>> Hi Folks,
>>
>> I'm trying to get an idea of the planned way forward with css support in
>> Trinidad, particularly around ADF's original/current skinning method vs.
>> more more normal/standard css use.
>>
>> We have been using Tomahawk components, and recently added some ADF
>> components, to get access to partial page reloads.  These two component
>> sets manage css in very different ways: Tomahawk following what seems to
>> be the norm of allowing the application of Classes and using linked
>> stylesheets, while ADF performs the (to me) unusual action of parsing
>> the css and then injecting it into the html that is sent to the client.
>
>
> One way to think about it is in terms of how you skin
> a real HTML app in the classic CSS sense.  You'd take something
> like:
>
>  <DL>
>    <DT>..</DT>
>    <DD>..</DD>
>  </DL>
>
> ... and then apply selectors to those semantic elements:
>
>  DL { border: red }
>
> Trinidad skinning is like this; it lets you provide styling
> information to a semantic type of component - like tr|table,
> or tr|panelList, just like you would apply styling information
> to a specific HTML element.
>
> And It's way more flexible than that - styling icons,
> specific sub-parts of a component, specific instances
> of a component, various states of a component (selected,
> disabled, etc.).
>
> The injected CSS classes - which, of course, can be
> supplemented by per-instance CSS classes - serve
> as the glue to hook this altogether, and should be
> considered an implementation detail.
>
>> We have the ADF skinning working now, but the two systems are somewhat
>> at odds. In addition, the ADF system appears less scalable to us; rather
>> than allowing the users' browsers to cache the css and do the styling
>> (something that scales based on the number of users) the css parsing and
>> injection increases server load per user.
>
>
> No, not true.  Browsers most definitely cache the CSS;  and it
> is not parsed once per user, but once.  It does have support
> for generating different CSS for different agents, languages,
> reading directions, and browsers, all off of a single stylesheet -
> but those are still generated once and cached.
>
>> What I'm hoping for is some information, or a pointer to some
>> information, on whether it is planned that this skinning system is
>> retained in the fully integrated Trinidad, or whether it is being
>> retired (or some other solution is being pursued). I'm afraid I haven't
>> found any documentation on this but if it has been discussed perhaps
>> someone could just point me in the right direction.
>
>
> The skinning system is very much being pursued, enhanced,
> and maintained for Trinidad;  it's one of the stronger features
> of the library, and some committers are looking at the idea
> of bringing it to Tomahawk.
>
> -- Adam Winer
>

-- 
Martin Dickson                           ph:  +64 9 3730400 x3592
User Experience Engineer                 fax: +64 9 3730401
Strategy, Research & Architecture        email: martin.dickson@peace.com
Peace Software                           http://www.peace.com


Mime
View raw message