- From: Joren Broekema via GitHub <sysbot+gh@w3.org>
- Date: Tue, 20 Jul 2021 12:51:37 +0000
- To: public-css-archive@w3.org
That indeed makes for some truly terrible developer experience for custom elements using ShadowDOM, as it would require me to rewrite all my styles that use `::slotted` to have an `!important` out of precaution, to prevent that global stylesheets overrides it. ```css .accordion ::slotted([slot='invoker']) { margin: 0; } .accordion ::slotted([slot='invoker'][expanded]) { font-weight: bold; } .accordion ::slotted([slot='content']) { margin: 0; visibility: hidden; display: none; } .accordion ::slotted([slot='content'][expanded]) { visibility: visible; display: block; } ``` becomes: ```css .accordion ::slotted([slot='invoker']) { margin: 0 !important; } .accordion ::slotted([slot='invoker'][expanded]) { font-weight: bold !important; } .accordion ::slotted([slot='content']) { margin: 0 !important; visibility: hidden !important; display: none !important; } .accordion ::slotted([slot='content'][expanded]) { visibility: visible !important; display: block !important; } ``` That also means that if I have a web component extension class that wants to extend my component with overrides, they themselves will be forced to do the same thing as well. I would definitely prefer it if: ``` Specificity of ::slotted() is 1 pseudoclass + specificity of argument. ``` Similar to `:host`, for pretty much the same reasons. -- GitHub Notification of comment by jorenbroekema Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1915#issuecomment-883367293 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 20 July 2021 12:51:39 UTC