- From: Thomas Allmer via GitHub <sysbot+gh@w3.org>
- Date: Fri, 12 Jan 2018 10:40:52 +0000
- To: public-css-archive@w3.org
daKmoR has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-shadow-parts] theme too broad? ==
hey,
so in this draft
https://tabatkins.github.io/specs/css-shadow-parts/#selectordef-theme
`::theme` can be used to modify every part in the entire subtree.
Description
------------
However, as part names do not need to be unique (at least I'm under that impression) this could result in various unwanted side effects.
UseCase:
I want to style every `my-alert` element. Unfortunately, the author picked a very common part name `header`.
Example Code:
```html
<my-app>
#shadow-root
<h3 part="header">My App Header</h3>
<my-dialog>
#shadow-root
<p part="header">My Dialog Header</p>
<my-alert>
#shadow-root
<span part="header">My Alert Header</span>
</my-alert>
<my-alert>
#shadow-root
<span part="header">My Alert Header</span>
</my-alert>
</my-dialog>
</my-app>
```
So if I where to use
```css
my-app::theme(header) {
background: green;
}
````
that would affect (way too many parts):
- `<h3 part="header">My App Header</h3>`
- `<p part="header">My Dialog Header</p>`
- `<span part="header">My Alert Header</span>`
- `<span part="header">My Alert Header</span>`
while I only would like to affect (every part="header" within `my-alert` elements):
- `<span part="header">My Alert Header</span>`
- `<span part="header">My Alert Header</span>`
Suggestion
------------
Could we add some way to limit it to certain tag-names (e.g. webcomponents with shadow-root)?
Something like this comes to mind
```css
my-app::theme(my-alert.header) {
background: green;
}
```
where
`my-alert` represents the (optional) tag name
`header` represents the part name
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2183 using your GitHub account
Received on Friday, 12 January 2018 10:40:55 UTC