Shadow parts
Il modo in cui un web component indica quali dei suoi elementi interni possono essere stilizzati dall'esterno: un contratto esplicito, non una falla nell'incapsulamento.
Il senso dello shadow tree è che il CSS esterno non possa entrarvi, ma preso alla lettera questo rende impossibile adattare un componente a un progetto grafico — ed è per questo che le prime librerie di componenti o rinunciavano allo shadow DOM o esponevano cinquanta proprietà personalizzate per ogni attributo immaginabile. La soluzione: l'autore del componente marca un elemento interno con part="label", e chi lo usa scrive my-widget::part(label) e lo stilizza normalmente. Il limite è importante: è raggiungibile solo ciò che è stato esposto esplicitamente, e solo come elemento intero — non si può scendere a selezionarne i figli. L'attributo exportparts inoltra le parti verso l'alto attraverso componenti annidati.