CSS shadow parts
The CSS shadow parts module defines the {{CSSXref("::part", "::part()")}} pseudo-element that can be set on a shadow host. Using this pseudo-element, you can enable shadow hosts to expose the selected element in the shadow tree to the outside page for styling purposes.
By default, elements in a shadow tree can be styled only within their respective shadow roots. The CSS shadow parts module enables including a part attribute on {{HTMLElement("template")}} descendants that make up the custom element, exposing the shadow tree node to external styling via the ::part() pseudo-element.
Reference
Selectors
{{CSSXref("::part", "::part()")}}
HTML attributes
Definitions
{{glossary("Shadow tree")}}
Guides
-
- : Alphabetical list of pseudo-elements defined by all the CSS specifications and WebVTT
-
- : Overview of the different APIs that enable creating reusable custom elements or web components.
Related concepts
- HTML
{{HTMLElement("template")}}element - HTML
{{HTMLElement("slot")}}element {{domxref("Element.part")}}property{{domxref("Element.shadowRoot")}}property{{domxref("Element.attachShadow()")}}method{{domxref("ShadowRoot")}}interface- CSS scoping module
{{CSSXref(":host")}}{{CSSXref(":host_function", ":host()")}}{{CSSXref(":host-context", ":host-context()")}}{{CSSXref("::slotted")}}
Specifications
{{Specifications}}
See also
- CSS pseudo elements module
- CSS selectors module
- Using shadow DOM
- Templates: Styling outside of the current scope on web.dev (2023)