W3C home > Mailing lists > Public > public-css-archive@w3.org > April 2019

Re: [csswg-drafts] [css-shadow-parts] ::part(foo)::part(bar) instead of forwarding? (#3841)

From: Tab Atkins Jr. via GitHub <sysbot+gh@w3.org>
Date: Fri, 19 Apr 2019 17:51:55 +0000
To: public-css-archive@w3.org
Message-ID: <issue_comment.created-484970128-1555696314-sysbot+gh@w3.org>
Okay, so going with "only the subparts you explicitly choose to export show up, but you have to access them with nested ::part() selectors", that still exposes implementation details of the component in an unfortunate way.

When styling a component with custom properties, you have no way of knowing whether the things consuming the custom properties are going to be in the component itself, or in a sub-component that the component passes the property on along to (possibly with a rename (`--foo2: var(--foo1);`) to match the custom property that that subcomponent expects.

This is good: the component can implement some bit of functionality itself, or with a nested component; it can swap out components that expect different theming variables; etc. And all of this is invisible to the outermost user of the component, who only needs to care about the custom-property contract that the outer component lists and can keep stable between updates.

We'd like the same property to be true of ::part(); exposing the precise nesting structure (and names of sub-parts, which may be out of the control of the main component author) seems like an unfortunate regression in encapsulation of components.

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3841#issuecomment-484970128 using your GitHub account
Received on Friday, 19 April 2019 17:51:56 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 06:41:46 UTC