Shadow parts ::part()
La façon dont un web component désigne lesquels de ses éléments internes peuvent être stylés de l'extérieur. Un contrat explicite plutôt que des brèches dans l'encapsulation.
Tout l'intérêt de l'arbre fantôme (shadow tree) est que le CSS extérieur ne peut pas y pénétrer, mais pris au pied de la lettre, cela rend un composant impossible à ajuster à une charte graphique — c'est pourquoi les premières bibliothèques de composants ont soit abandonné complètement le shadow DOM, soit exposé cinquante propriétés personnalisées pour chaque attribut imaginable. La solution : l'auteur du composant marque un élément interne avec part="label", après quoi le consommateur écrit my-widget::part(label) et le style normalement. La limite est importante : seul ce qui a été explicitement exposé est accessible, et seulement comme un élément entier — on ne peut pas descendre plus bas vers ses enfants. L'attribut exportparts fait remonter les parties à travers des composants imbriqués.