Re: ::part Additions

On 3.7.2013 5:36, Steve Orvell wrote:
>
>
> 3/ ability to create complex selectors using ::part
>
> This concerns me. I will stipulate that you have shown this is useful 
> and that this type of styling is not otherwise as easily achievable.
>
> The problem I see is that we've now exposed the structure of a 
> shadowRoot as part of its 'public' styling api. If ::part(foo) > 
> ::part(bar) is an important state, I'm then not allowed to move part 
> bar with respect to part foo. This 'implementation detail' of its 
> ShadowDOM is now set in stone.
>
> Perhaps we could achieve similar expressiveness without the inherent 
> brittleness by adding the ability to specify parts that map to a 
> complex selector specified within the shadowRoot.
>
> From JavaScript, this might be something like: 
> shadowRootHost.addPart('foobar', '::part(foo) > ::part(bar)');

As tab mentioned
in shadow, following parts

<div part='parent'>
   <div>
     <div part='child'></div>
   </div>
</div>
should be in direct descendant - ancestor relationship, regardless of what is in between (there just can be no other part), I guess this is reasonable exposition, from Delphi / Visual Studio controls experience, in more complex complex controls one simply has to understand the relationship of publicly visible parts of control (if I would want to set an icon on the second tab of PageControl, I simply have to know, where i can find this tab {CustomerInfo.Tabs[1].Icon})

But I like your idea, much more generic and looking at it, since this is Shadow internal issue, I would go as far as

shadowRootHost.addPart('article-time', 'article header time');

which would mean that all time elements in header elements in article within this shadow root would be reachable by ::part(article-time), and in next release one could change it to

shadowRootHost.addPart('article-time', 'article header time,article footer time');

and ::part(article-time) would target both

I like that, because it hides the internals and makes changes easier

B.



>
>
>
> On Tue, Jul 2, 2013 at 6:32 AM, Bronislav Klučka 
> <Bronislav.Klucka@bauglir.com <mailto:Bronislav.Klucka@bauglir.com>> 
> wrote:
>
>     Hi,
>
>     since new paradigm conserning Custom Pseudo Elements have been
>     introduced
>     http://lists.w3.org/Archives/Public/public-webapps/2013AprJun/0985.html
>     (part 5)
>
>     I'd like to suggest few additions/changes:
>
>     1/ ability to style nested shadow dom elements
>     2/ change of part attribute from DOMString to DOMTokenList
>     3/ ability to create complex selectors using ::part
>
>     the description/reasoning for this can be found here:
>     http://projects.webnt.eu/spec/shadow/index.php
>
>     In case ::part will not be in spec, the same still applies to pseudos
>
>     Bronislav Klucka
>
>
>
>

Received on Friday, 5 July 2013 17:48:37 UTC