Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Les composants web (Web Components) sont un ensemble de plusieurs technologies qui permettent de créer des éléments personnalisés réutilisables, dont les fonctionnalités sont encapsulées en dehors du reste du code et qui peuvent être utilisées au sein d'applications web.
On essaie tant que possible de réutiliser du code. Cette réutilisation n'a pas toujours été simple pour du HTML, CSS et JavaScript complexe utilisé pour créer des éléments d'interface utilisateur personnalisés. Réutiliser de tels éléments d'interface peuvent gâcher une page si on ne fait pas attention.
Les composants web (Web Components en anglais) visent à résoudre ces problèmes. Il s'agit de trois technologies qui peuvent être combinées ensemble pour créer des éléments sur mesure avec des fonctionnalités encapsulées et qu'on peut réutiliser à volonté, sans risque de collisions.
L'approche pour implémenter un composant web ressemble généralement à :
Un guide illustrant comment utiliser les fonctionnalités des éléments personnalisés afin de créer des composants web simples et abordant les fonctions de rappel pour le cycle de vie de l'élément ainsi que d'autres fonctionnalités avancées.
Utiliser le DOM sombre (shadow DOM)Un guide abordant les fondamentaux du shadow DOM, illustrant comment attacher un DOM sombre à un élément, l'ajouter à l'arbre DOM, le mettre en forme, etc.
Utiliser les gabarits et emplacementsUn guide illustrant comment définir une structure HTML réutilisable avec les éléments <template> et <slot>, avant d'utiliser cette structure à l'intérieur des composants web.
Les fonctionnalités pour les éléments personnalisés et notamment la méthode CustomElementRegistry.define() qui est utilisée pour enregistrer de nouveaux éléments personnalisés afin qu'ils puissent être utilisés dans votre document.
Window.customElementsRenvoie une référence à l'objet CustomElementRegistry.
Fonctions de rappel pour le cycle de vieDes fonctions de rappel spéciales qui définissent le comportement d'un élément personnalisé :
Les extensions suivantes sont définies :
Quelques pseudo-classes CSS sont spécifiquement liées aux éléments personnalisés :
Un pseudo-élément CSS est spécifiquement lié aux éléments personnalisés :
Représente le nœud racine du sous-arbre du DOM sombre.
Extensions à ElementLes extensions à l'interface Element pour le DOM sombre sont :
Voici les ajouts à l'interface Node qui portent sur le DOM sombre :
Voici les extensions à l'interface Event relatives au DOM sombre :
Cet élément contient un fragment HTML qui n'est pas affiché lors du chargement initial du document qui le contient mais qui peut être affiché lors de l'exécution à l'aide de JavaScript. Il est principalement utilisé pour la structure des éléments personnalisés. L'interface DOM correspondante est HTMLTemplateElement.
<slot>Un emplacement à l'intérieur du composant web qui peut être utilisé pour votre balisage et qui permet de créer des arbres DOM séparés. L'interface DOM correspondante est HTMLSlotElement.
L'attribut HTML universel slotIl permet d'affecter un emplacement (slot) d'un arbre d'un DOM sombre à un élément.
Element.assignedSlotUn attribut en lecture seule qui renvoie une référence à l'élément <slot> au sein duquel l'élément courant est inséré.
Text.assignedSlotUn attribut en lecture seule qui renvoie une référence à l'élément <slot> au sein duquel le nœud texte est inséré.
Les extensions à ElementLes extensions à l'interface Element sont :
Voici les pseudo-éléments relatifs aux emplacements pour le shadow DOM :
Celui-ci est déclenché sur une instance de HTMLSlotElement (qui représente un élément <slot>) lorsque les nœuds contenus dans cet emplacement changent.
Différents exemples sont disponibles sur le dépôt GitHub web-components-examples.
| HTML # the-template-element |
| DOM # interface-shadowroot |
| HTML # the-template-element |
| DOM # interface-shadowroot |
Les composants web sont pris en charge par défaut dans Firefox (63), Chrome, Opera, et Edge (79). Safari prend en charge certaines fonctionnalités des composants web mais moins que les autres navigateurs.
Pour plus de détails sur la compatibilité des différentes fonctionnalités, voyez les tableaux de compatibilité des pages de référence.
Voici différentes bibliothèques ou outils autour des composants web :
Cette page a été modifiée le 5 nov. 2025 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.