- From: François REMY <fremycompany_pub@yahoo.fr>
- Date: Sat, 20 Oct 2012 12:55:08 +0200
- To: "Dimitri Glazkov" <dglazkov@google.com>
- Cc: "Boris Zbarsky" <bzbarsky@mit.edu>, "Tab Atkins Jr." <jackalmage@gmail.com>, <www-style@w3.org>, "Tony Ross" <tross@microsoft.com>
| | I don't see how? The tabs are not in the template.
|
| Then you need a way add "invisible" classes from the component.
Now that I think about it, you could even use a normal namespace for the use
case. I do believe that the external document using the tab component may
also want to apply some custom style to the selected tab or tab-strip. I'm
not sure at all it makes sense to hide this information to him since he can
retreive it back from other (complicated) ways anyway.
For example, you may have two kinds of tab-stips (the ones that become blue
when selected and the ones that become red). If you have a "@namespace
tab-data" to get the selection properties, you can simply have the following
declaration in your document's stylesheet:
h2.red[tab-data|selected] { color: red !important; }
h2.blue[tab-data|selected] { color: blue !important; }
that would override the default style defined in your template's stylesheet:
h2[tab-data|selected] { color: black; }
If your component doens't leak the selection status, you can't apply those
'overidden' styles easily.
By the way, your current solution (relying on nth-of-type to show the right
tab) fails to handle correctly the insertion of new tabs at runtime. If you
insert a new tab before the currently selected tab, the focus will move to
the previous tab without any user interaction. If you're using an attribute,
you don't have the same issue.
Received on Saturday, 20 October 2012 10:55:20 UTC