Lit
Web Components
JavaScript
UI
Design System
Custom Elements
Shadow DOM
Reactive
Performance
Accessibility

Composants Web avec Lit : Guide pratique pour une interface utilisateur réutilisable

Lit (anciennement lit-element) simplifie la création de composants Web modernes en offrant un modèle déclaratif, une réactivité légère et un support complet…

Composants Web avec Lit : Guide pratique pour une interface utilisateur réutilisable

Lit (anciennement lit-element) simplifie la création de composants Web modernes en offrant un modèle déclaratif, une réactivité légère et une prise en charge complète du modèle Éléments personnalisés. En 2025, Lit est le choix privilégié pour les bibliothèques d’interface utilisateur qui doivent être indépendantes du framework.

Pourquoi choisir Lit ?

  • Compatibilité native, fonctionne dans tous les navigateurs modernes sans dépendances externes.
  • Performance, rendu minimal grâce au lit-html et à la mise à jour basée sur les propriétés.
  • Shadow DOM, encapsulation des styles et du balisage, assurant l'isolation.
  • Réactivité simple, il suffit de déclarer les propriétés et Lit s'occupe de la mise à jour.

Structure de base d'un composant Lit

Un composant Lit étend la classe de base LitElement et regroupe trois éléments : des styles encapsulés, déclarés statiquement pour être réutilisés dans chaque rendu ; des propriétés réactives, qui déclenchent des mises à jour automatiques lorsqu'elles changent ; et un procédé de rendu déclaratif basé sur un modèle. L'interaction avec le monde extérieur se fait via des événements personnalisés : un bouton, par exemple, émet son propre événement lorsqu'on clique dessus, au lieu de coupler la logique métier au composant. Enfin, l'élément est enregistré en tant qu'élément personnalisé natif, ce qui le rend disponible sur n'importe quelle page ou framework en tant que balise HTML commune.

Bonnes pratiques de performances

  1. Utilisez static get styles, évitez de recréer du CSS à chaque rendu.
  2. Mettez à jour uniquement les propriétés observées, Lit détecte les modifications et met à jour le DOM efficacement.
  3. Évitez innerHTML, préférez le modèle Lit html pour éviter XSS.
  4. Composants à chargement différé, chargez les composants à la demande avec import().

Accessibilité (a11y)

  • Définir les attributs ARIA pertinents (role, aria-label).
  • Assurez la mise au point visible à l'aide de :focus-visible.
  • Test avec des lecteurs d'écran (NVDA, VoiceOver).

Le modèle de rendu du composant doit inclure des attributs comme aria-label liés aux propriétés elles-mêmes, garantissant que l'étiquette lue par les lecteurs d'écran suit le contenu visible du bouton sans travail supplémentaire.

Intégration avec les systèmes de conception

Lit peut servir de couche de base pour un système de conception. La recommandation est de centraliser les jetons de design, couleurs, typographie, espacement, dans un module séparé et de les importer dans les composants. Ainsi, chaque bouton ou carte consomme la palette à partir d'une seule source de vérité, et un changement de marque se propage dans tout le système en changeant uniquement le module de jeton.

Tests automatisés

Utilisez @web/test-runner ou Playwright pour valider le comportement et les régressions visuelles. Les deux s'installent en tant que dépendances de développement et s'exécutent sur les fichiers de test du projet, couvrant tout, du rendu des composants aux interactions utilisateur et aux comparaisons de pixels.

Déploiement et distribution

  • package npm, publié en @yourorg/ui-components.
  • CDN, rendez-le disponible via jsDelivr ou unpkg pour une utilisation directe en HTML.
  • Storybook, documentez et testez visuellement chaque composant.

Liste de contrôle de mise en œuvre

  • Définir les jetons de design (couleurs, typographie, espacement).
  • Créez des composants de base (bouton, entrée, carte) à l'aide de Lit.
  • Configurez la charpie (ESLint) et le format (Prettier).
  • Rédiger des tests unitaires et d'intégration.
  • Documentez avec Storybook et générez des artefacts de publication.
  • Publiez sur npm et/ou CDN.

Conclusion

Lit offre un chemin léger et standardisé pour créer des composants Web réutilisables, en mettant l'accent sur les performances, l'accessibilité et l'interopérabilité. En adoptant les meilleures pratiques décrites, vous créez une interface utilisateur qui peut être utilisée par n'importe quelle application, quel que soit le framework.


Quel composant Lit aimeriez-vous voir dans le prochain article ? Partagez dans les commentaires !

A lire aussi