list

exportparts

Permet à un Web Component d'exposer les parts de son Shadow DOM à travers plusieurs niveaux d'imbrication de composants.

Description

L’attribut exportparts est utilisé dans les Web Components pour re-exporter les parts d’un Shadow DOM imbriqué. Alors que part expose des éléments internes d’un composant au CSS externe, exportparts permet de propager ces parts à travers plusieurs niveaux de Shadow DOM (composants composés d’autres composants).

Syntaxe

<!-- Composant qui re-exporte les parts d'un sous-composant -->
<mon-composant exportparts="bouton, icone"></mon-composant>

Exemples

Composant parent qui expose les parts d’un enfant :

<!-- Définition de mon-bouton -->
<template id="mon-bouton">
  <shadow-root>
    <span part="icone">★</span>
    <button part="bouton">Clic</button>
  </shadow-root>
</template>

<!-- Composant parent intégrant mon-bouton et re-exportant ses parts -->
<template id="ma-carte">
  <shadow-root>
    <mon-bouton exportparts="bouton: carte-bouton, icone: carte-icone"></mon-bouton>
  </shadow-root>
</template>

Ciblage CSS depuis l’extérieur :

/* Style le bouton intérieur depuis l'extérieur de ma-carte */
ma-carte::part(carte-bouton) {
  background: navy;
  color: white;
}

Notes

Renommage de parts : exportparts="interne: externe" permet de renommer la part lors de l’export, évitant les conflits de noms entre composants.

Complément de part : part expose les éléments du Shadow DOM immédiat ; exportparts propage ces expositions à travers les niveaux d’imbrication.

Usage avancé : exportparts est principalement utile lors de la composition de Web Components, un cas d’usage avancé. Pour des composants simples, seul part est nécessaire.

Support navigateurs

Chrome73+ · Firefox72+ · Safari13.1+ · Edge79+