Shadow parts
Sposób, w jaki komponent webowy wskazuje, które z jego wewnętrznych elementów można stylować z zewnątrz. Jawny kontrakt zamiast dziur w hermetyzacji.
Cały sens drzewa shadow polega na tym, że zewnętrzny CSS nie może się do niego dostać, ale brane dosłownie uniemożliwia to dopasowanie komponentu do projektu — dlatego wczesne biblioteki komponentów albo w ogóle porzucały shadow DOM, albo wystawiały pięćdziesiąt własności niestandardowych na każdy możliwy atrybut. Rozwiązanie: autor komponentu oznacza element wewnętrzny atrybutem part="label", po czym użytkownik pisze my-widget::part(label) i stylizuje go normalnie. Ważne jest ograniczenie: dostępne jest tylko to, co zostało jawnie udostępnione, i tylko jako cały element — nie można sięgnąć głębiej do jego potomków. Atrybut exportparts przekazuje części w górę przez zagnieżdżone komponenty.