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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
Peace Software http://www.peace.com