Guides Modern Web Guidance

Publié le 26 octobre 2026

Explorez les guides disponibles dans Modern Web Guidance, organisés par catégorie.

Conception visuelle

Adapter la barre de défilement aux préférences de contraste élevé
Améliorer la visibilité de la barre de défilement pour les utilisateurs qui préfèrent les interfaces à contraste élevé
Appliquer des nuanceurs WebGL au contenu HTML
Appliquez des effets visuels personnalisés avec des nuanceurs WebGL au contenu HTML.
Couleur
Conseils sur les couleurs pour le Web, y compris les exigences de contraste, les jeux de couleurs clairs et sombres, le mode Couleurs forcées et la génération de teintes et de nuances à partir d'une couleur de base.
Formes complexes
Découpez des éléments et leur contenu selon n'importe quelle forme libre, comme un symbole, un coup de pinceau ou une texture organique, pour des designs plus expressifs.
Décorations de texte personnalisées
Ajoutez des décorations de texte telles que des soulignements, des surlignements, des barrés ou des formes entièrement personnalisées, avec des animations d'affichage, des décalages et des encarts de fin personnalisés, ainsi qu'un saut d'encre flexible.
Personnaliser la couleur ou l'épaisseur d'une barre de défilement
Personnaliser la couleur ou l'épaisseur d'une barre de défilement
Mode sombre
Implémentez la prise en charge du mode sombre de manière à respecter la préférence de l'utilisateur pour le thème clair ou sombre et à adapter l'interface utilisateur du navigateur (par exemple, les barres de défilement, les commandes de formulaire, etc.).
Activer le contenu HTML interactif dans les scènes 3D
Intégrez des éléments HTML interactifs dans une scène 3D.
Assurer la lisibilité du texte avec des couleurs d'arrière-plan dynamiques
Sélectionnez une couleur de texte lisible avec un contraste suffisant sur une couleur d'arrière-plan dynamique.
Lignes de texte de largeur égale
Faites en sorte que chaque ligne d'un titre ou d'un bloc de texte multiligne ait la même largeur, comme dans une typographie de style affiche ou de titres empilés. Contrairement au texte justifié, le texte lui-même est dimensionné en fonction de la largeur, plutôt que d'étirer l'espacement.
Exporter du contenu HTML depuis Canvas
Capturez et exportez du contenu HTML dynamique sous forme d'images ou d'images vidéo à partir de Canvas.
Exposer le contenu du canevas aux fonctionnalités du navigateur
Exposez le contenu affiché dans un canevas aux fonctionnalités du navigateur telles que les technologies d'assistance, la traduction ou le mode Lecture.
Améliorer la mise en page et la lisibilité du texte
Améliorez la mise en page et la lisibilité des contenus textuels courts et autonomes, tels que les titres ne dépassant pas quelques lignes, en permettant au navigateur d'appliquer des sauts de ligne équilibrés lors du retour à la ligne.
Alignement précis du texte
Obtenez un alignement vertical précis avec du texte de n'importe quelle police. Par exemple, un espacement visuel exactement égal au-dessus et en dessous du texte, ou un alignement parfait du texte avec les icônes ou les images adjacentes.
Formes découpées
Combinez plusieurs formes pour créer des découpes complexes ou des effets de "défonce" dans des éléments, par exemple en ajoutant une encoche à un élément.
Fondu du contenu sur les bords
Appliquez un dégradé de transparence aux bords du contenu pour indiquer d'autres zones de défilement ou pour masquer le texte soumis à un paywall.
Thématisation de l'UI générée par le navigateur
Appliquez un thème à l'UI générée par le navigateur, comme la sélection de texte, les barres de défilement, les commandes de formulaire et les sélecteurs, avec CSS au lieu de la recréer avec des éléments personnalisés.
Typographie
Bonnes pratiques de typographie pour le Web, y compris les unités de taille de police, la hauteur de ligne, le retour automatique à la ligne et l'équilibrage du texte, ainsi que la typographie fluide qui s'adapte à la fenêtre d'affichage.
Effets visuels
Effets visuels avec CSS, tels que les ombres superposées, les modes de fusion, les dégradés avec interpolation de couleur prévisible et les motifs tels que les rayures, les damiers, les points et les graphiques à secteurs créés uniquement à partir de dégradés.
Polices de remplacement visuellement stables
Définissez des styles de police de sorte que le texte reste lisible et visuellement cohérent en cas de remplacement de la police préférée par l'une des polices de remplacement (ou inversement).
Polices mixtes visuellement stables
Définissez des styles de police de manière à ce que le texte reste lisible et visuellement cohérent lorsque plusieurs polices sont utilisées pour afficher un même bloc de texte.
Contenu visuel texturé
Appliquez des motifs de texture et d'altération réalistes aux éléments pour leur donner un aspect organique, vieilli ou de matériau physique.

Atomes d'UI

Créer un indicateur de progression de défilement
Créez une barre de progression du défilement, un outil de suivi de la progression par étapes ou tout autre élément visuel indiquant à l'utilisateur jusqu'où il a fait défiler une page ou une section.
Créer des effets de diapositive de carrousel
Créez un carrousel de diapositives avec des images ou d'autres éléments visuels, où chaque diapositive s'anime lorsqu'elle entre, se centre ou sort de son défilement. Par exemple, les diapositives peuvent apparaître ou disparaître en fondu, pivoter, s'agrandir ou se réduire, etc.
Thèmes clair/sombre spécifiques aux composants
Forcer certains éléments à s'afficher en mode clair ou sombre (par exemple, les blocs de code, les lecteurs multimédias, etc.) indépendamment du jeu de couleurs de la page.
Info-bulles basées sur la position
Créez des info-bulles et des popovers avec des flèches directionnelles (ou d'autres styles visuels) qui pointent automatiquement dans la bonne direction lorsque l'élément passe à une position de remplacement.
Tirer pour afficher
Créez une fonctionnalité de balayage vers le bas qui permet à l'utilisateur de balayer l'écran vers le bas pour afficher plus de contenu, comme une barre de recherche.
Tableaux responsifs
Créez un tableau de données qui présente des données tabulaires avec une sémantique d'en-tête appropriée, et qui reste lisible et navigable sur les petits écrans et avec les technologies d'assistance.
Éléments tenant compte de la position de défilement
Créez des boutons ou des widgets flottants (retour en haut, défilement vers le bas, lanceurs de chat, etc.) qui s'affichent et disparaissent selon que l'utilisateur a fait défiler la page ou non.
Conseils sur l'affordance de défilement
Créez des superpositions d'ombres de défilement, des dégradés ou des indicateurs de flèche directionnelle qui n'apparaissent que lorsqu'il y a plus de contenu à faire défiler dans cette direction.
En-tête qui rétrécit lors du défilement
Animez de manière fluide un en-tête fixe ou une couverture pleine page lors du défilement pour réduire dynamiquement sa taille, ajouter des ombres et transformer sa mise en page sur une distance de défilement prédéfinie.
En-têtes fixes sensibles à l'état
Créez des en-têtes de section ou des barres de navigation fixes qui se transforment visuellement lorsqu'ils sont "bloqués" en haut, en changeant de jeu de couleurs ou en ajoutant une ombre.
Utiliser et gérer des icônes
Affichez et gérez des icônes qui peuvent être définies et paramétrées à partir de CSS, qui se chargent rapidement, qui sont nettes quelle que soit la résolution et qui sont correctement exposées aux technologies d'assistance (ou masquées).
Menus déroulants adaptés à la fenêtre d'affichage
Positionnez les menus déroulants, les menus contextuels ou les panneaux d'actions contextuelles associés à un bouton de déclenchement de manière à ce qu'ils inversent automatiquement les axes aux bords de la fenêtre d'affichage au lieu d'être coupés.

Composants d'interface utilisateur

Créer une carte
Créez un composant de fiche qui adapte sa présentation à l'espace et au contenu disponibles.
Créer un menu déroulant
Créez un composant de menu qui affiche une liste d'options ou d'actions, avec prise en charge des sous-menus imbriqués.
Créer une navigation Scrollspy
Mettre en surbrillance la section actuellement visible d'une page dans un menu de navigation
Créer une barre de progression stylisée
Créez une barre de progression stylisée qui indique la fin d'une tâche ou d'un processus, dans des états déterminés et indéterminés.
Créer une fiche d'information interactive
Créez un composant de fiche informative qui affiche un aperçu structuré interactif de la page vers laquelle un certain type de lien (par exemple, un profil utilisateur) redirige lorsque l'utilisateur pointe dessus.
Créer des visites guidées persistantes de l'application
Créez des tutoriels d'intégration persistants à l'aide de superpositions natives ancrées qui restent ouvertes pendant l'interaction de l'utilisateur.
Créer des notifications toast
Créez des notifications toast et en superposition non intrusives pour les messages persistants et empilables, et la communication d'état.
Boutons d'activation/désactivation du mode sombre
Créez un composant d'activation/de désactivation du mode sombre qui permet aux utilisateurs de remplacer les préférences de jeu de couleurs de leur système pour le site actuel.
Dialog
Créez un composant de boîte de dialogue modal ou non modal qui est accessible, gère correctement la sélection et peut être fermé comme les utilisateurs s'y attendent sur chaque plate-forme.
Icône de chargement en cours
Créez une icône de chargement qui indique l'état d'activité à tous les utilisateurs, respecte les préférences de réduction des animations et s'anime efficacement.
Panneau de navigation
Créez un composant de panneau de navigation qui, lorsqu'il est déclenché à partir d'un bouton de menu, glisse depuis le côté pour se superposer au contenu de la page existante, et glisse vers l'extérieur lorsqu'il est fermé (en balayant l'écran, en appuyant à l'extérieur ou en appuyant sur Échap).
Cercle de progression
Créez un composant de cercle de progression qui représente visuellement l'état d'avancement d'une tâche ou d'un processus, avec la possibilité d'ajouter du contenu au centre et un style cohérent avec la marque.
Vue détaillée de la pile
Créez une navigation hiérarchique en plein écran qui permet aux utilisateurs d'accéder à des vues imbriquées et de balayer l'écran ou de revenir en arrière, tout en synchronisant l'historique de navigation.
Mettre en forme des cases à cocher
Stylisez les cases à cocher, y compris les icônes personnalisées, la mise en page, les couleurs et les animations de cochage/décochage, tout en préservant les fonctionnalités et l'accessibilité natives.

Comportements de l'UI

Ajouter des effets d'entrée et de sortie aux éléments lorsqu'ils entrent dans la zone de défilement ou la quittent
Créez des effets de fondu, de mise à l'échelle ou d'autres effets de révélation complexes sur les éléments lorsqu'ils entrent et sortent de la zone de défilement (ou de la fenêtre d'affichage) pendant que l'utilisateur fait défiler la page.
Soulignement de l'onglet de positionnement de l'ancre
Effectuez une transition fluide d'un élément entre deux positions d'éléments cibles. Par exemple, déplacer le soulignement d'un onglet sélectionné entre l'onglet précédemment sélectionné et l'onglet actuellement sélectionné.
Animer l'entrée et la sortie des éléments
Masquez/Affichez facilement des éléments lorsqu'ils sont ajoutés/supprimés du DOM ou lorsque leurs valeurs d'affichage sont activées/désactivées.
Animer des éléments vers et depuis la couche supérieure
Animez des éléments tels que des boîtes de dialogue, des popovers et des info-bulles lorsqu'ils entrent ou sortent de la couche supérieure.
Créer un élément déplaçable
Permettre de faire glisser un élément flottant pour le déplacer sur la page.
Créer un effet parallaxe au défilement
Créez des effets basés sur le défilement (comme la parallaxe) où les couches de premier plan et d'arrière-plan se déplacent à des vitesses différentes, créant une impression de profondeur lorsque l'utilisateur fait défiler la page.
Carrousel de Snap Highlights
Mettez en évidence visuellement l'élément non interactif actuellement ancré dans les carrousels, les galeries ou les expériences de balayage en plein écran avec défilement scroll-snap. Par exemple, développer une carte lorsqu'elle est ancrée ou afficher du contenu masqué.
Transitions cohérentes entre les documents
Assurez-vous que l'état critique de la page est chargé et stable avant de lancer une transition de vue entre documents. Cela signifie que les styles CSS critiques sont chargés et appliqués, que le code JavaScript critique est chargé et exécuté, et que le code HTML visible pour la vue initiale de la page par l'utilisateur a été analysé avant l'exécution de la transition.
Créer une animation en décalé
Échelonnez le timing de l'animation ou de la transition entre les éléments frères afin que chacun démarre après un délai calculé en fonction de sa position dans la liste des éléments frères.
Transitions entre documents
Créez des transitions fluides et transparentes entre les navigations sur une page entière, telles que des fondus enchaînés, des effets de révélation personnalisés ou la transformation du contenu d'une page à l'autre.
Actions des boutons personnalisés
Connectez de manière déclarative un bouton à n'importe quel élément pour déclencher des actions personnalisées spécifiques à l'application à l'aide de commandes de bouton déclaratives, de commandes d'appel, de commandes de bouton, de commandes personnalisées ou d'actions d'activation/désactivation déclaratives.
Contrôle déclaratif des boîtes de dialogue et des popovers
Activez ou désactivez la visibilité d'une boîte de dialogue ou d'un popover à partir d'un bouton sans écrire de code JavaScript.
Transitions de navigation directionnelle
Animez les changements d'état visuel pour refléter la direction du flux de navigation d'un utilisateur, par exemple en faisant glisser un nouveau contenu depuis la droite lorsque l'utilisateur avance ou depuis la gauche lorsqu'il revient à un écran précédent.
Transitions d'éléments de groupe
Effectuez une transition simultanée d'un groupe d'éléments similaires en utilisant la même logique de transition, par exemple en supprimant un produit d'un panier et en animant tous les autres produits pour les placer dans leurs nouvelles positions.
Mettre en surbrillance des plages de texte
Mettez en surbrillance des plages de texte arbitraires sur une page, telles que des résultats de recherche, des fautes d'orthographe ou des curseurs de modification collaborative.
Révélation de contenu interactif
Créez des effets de révélation interactifs, comme un projecteur qui suit le pointeur de l'utilisateur pour révéler des détails dans une image ou une section de l'interface utilisateur.
Aperçus des actions déclenchées par l'intérêt
Affichez un aperçu en direct de l'effet d'un bouton lorsqu'un utilisateur manifeste de l'intérêt (par exemple, en pointant, en sélectionnant ou en appuyant de manière prolongée), mais avant qu'il ne clique.
Fermer une boîte de dialogue par simple clic
Créez une boîte de dialogue modale qui peut être fermée par un clic ou une pression en dehors de la boîte de dialogue.
Mouvement
Animez l'UI avec des transitions CSS, des animations, des animations déclenchées par le défilement et des transitions de vue, tout en conservant le mouvement sur le compositeur et en respectant les préférences de réduction des animations.
Déplacer un élément DOM sans perdre l'état
Déplacez ou changez le parent d'un élément DOM sans perdre l'état d'un élément important, comme les états d'interactivité (:focus/:active), l'état de chargement de <iframe>, l'état d'animation/de transition, etc.
UI de la couche supérieure persistante
Maintenez une boîte de dialogue modale, un élément plein écran ou un popover natif visiblement ouvert et fonctionnellement actif lorsque son nœud DOM sous-jacent est déplacé ou reparenté dans le DOM.
Easing basé sur la physique
Créez des effets d'animation et de transition personnalisés basés sur la physique, comme le rebond et le ressort, qui semblent plus naturels et attrayants que les courbes d'accélération traditionnelles.
Boîte de dialogue de fermeture des paramètres de la plate-forme
Créez une boîte de dialogue modale qui peut être fermée via des actions utilisateur standards spécifiques à la plate-forme, comme appuyer sur la touche Esc sur les plates-formes de bureau, ou un geste "Retour" ou "Ignorer" sur les plates-formes mobiles.
Empêcher le défilement de la page sous une boîte de dialogue modale
Empêcher le défilement de la page sous-jacente lorsqu'une boîte de dialogue modale est ouverte.
Transitions sur un même document
Connectez visuellement les éléments persistants entre différents états de page ou navigations dans une application monopage (par exemple, en agrandissant une miniature de produit en une image héros pleine page) en modifiant de manière fluide leur taille, leur position ou d'autres propriétés de style.
Transitions de composants limitées
Animez les changements d'état dans un seul composant (une fiche, une liste, un panneau ou un autre sous-arbre) pendant que le reste de la page reste interactif et que d'autres transitions s'exécutent simultanément.
Commentaires en temps réel sur le défilement scroll-snap
Fournissez un retour visuel en temps réel dans les éléments d'interface utilisateur associés pendant qu'un utilisateur fait défiler du contenu aligné sur l'alignement, avant que le geste de défilement ne soit terminé.
Synchronisation de l'état du défilement scroll-snap
Synchronisez les indicateurs de navigation, les panneaux de contenu associés et le suivi analytique avec l'élément ancré actif dans un conteneur à faire défiler.
Scrollytelling
Animez les propriétés visuelles d'un élément cible (par exemple, en estompant un arrière-plan, en modifiant une couleur d'arrière-plan ou en créant des expériences de scrollytelling) entièrement en fonction de la position de la fenêtre de défilement d'un élément complètement différent.
Rechercher du contenu masqué
Masquez le contenu à l'aide de modèles tels que des accordéons, des onglets et des sections "En savoir plus", tout en vous assurant que le texte masqué s'affiche lors des recherches natives "Rechercher sur la page", qu'il permet l'indexation par les moteurs de recherche, qu'il accepte les liens profonds de fragments d'URL et qu'il maintient l'accessibilité ARIA.
Définir une cible de défilement pour l'affichage initial
Créez une liste d'éléments à faire défiler (par exemple, un carrousel d'images ou un fil de discussion) qui peut être affichée avec un élément particulier visible lors de l'affichage initial.
Afficher une info-bulle lorsque le curseur pointe un élément
Affichez une info-bulle ou des informations supplémentaires lorsqu'un utilisateur pointe sur un élément interactif, le sélectionne ou appuie de manière prolongée dessus, sans qu'il ait besoin de cliquer.
Navigation spatiale (focus sur le pavé directionnel)
Implémenter une navigation spatiale accessible à l'aide des touches fléchées qui fonctionne correctement dans différents modes de mise en page (grille, etc.)
Faire glisser l'élément pour le supprimer
Permettez aux utilisateurs d'effectuer des actions sur les éléments d'une liste (supprimer, archiver, marquer comme lu, etc.) en balayant l'écran horizontalement. Ils peuvent ainsi traiter rapidement les entrées sans avoir à appuyer sur une commande distincte.
Balayer pour afficher
Permettez aux utilisateurs de balayer horizontalement un élément de liste ou un volet de contenu pour afficher des boutons d'action contextuels ou un menu latéral sans déclencher automatiquement une action.
Déclencher des effets une fois le défilement automatisé terminé
Déclenchez des effets visuels, des animations ou des changements de focus sur un élément cible uniquement après la fin d'un défilement programmatique fluide vers cet élément.
Défilement panoramique bidimensionnel
Permettez aux utilisateurs de faire défiler librement des surfaces bidimensionnelles (comme des cartes, des images zoomées, des canevas infinis ou de grandes grilles de données) dans les deux directions (en diagonale ou en changeant de direction en cours de geste) sans que le geste ne se limite à un seul axe horizontal ou vertical.

Formulaires

Sélecteur de sélection animé
Créez un composant de sélection personnalisé dont le menu déroulant est animé. Par exemple, le menu apparaît en fondu ou en glissant, ou les options s'animent lors de la sélection.
Formulaires cohérents avec la marque
Adaptez les cases à cocher, les cases d'option, les curseurs de plage et les barres de progression à la palette de couleurs de votre site sans les remplacer par des composants personnalisés.
Curseur de plage conforme à la marque
Stylisez un curseur de plage natif avec des états de piste, de curseur, de remplissage et de sélection personnalisés, tout en préservant les fonctionnalités et l'accessibilité natives.
Style de sélection de marque
Créez des éléments de sélection personnalisés dont le bouton, le sélecteur, l'icône de flèche et la coche correspondent parfaitement à la typographie, aux couleurs, à l'espacement et aux bordures de votre marque ou de votre système de conception.
Créer un formulaire de paiement conforme aux bonnes pratiques
Créez un formulaire de paiement qui collecte les informations de carte avec des valeurs de saisie semi-automatique correctes et la prise en charge de la saisie automatique.
Créer un formulaire de connexion conforme aux bonnes pratiques
Créez un formulaire de connexion avec des valeurs de saisie semi-automatique correctes et la prise en charge de la saisie automatique.
Créer un formulaire d'inscription qui respecte les bonnes pratiques
Créez un formulaire d'inscription avec des valeurs de saisie semi-automatique correctes et la prise en charge de la saisie automatique.
Créer des commandes de switch accessibles
Créez un bouton bascule accessible avec l'attribut HTML natif "switch", en utilisant une case à cocher stylisée comme solution de secours lorsqu'il n'est pas compatible.
Créer un formulaire d'adresse conforme aux bonnes pratiques
Créez un formulaire d'adresse avec les attributs de saisie semi-automatique appropriés et la prise en charge de la saisie automatique.
Mises en page personnalisées du sélecteur
Créez des sélecteurs personnalisés dont les options sont positionnées de manière unique ou intéressante, plutôt que la liste d'options empilée traditionnelle.
Les champs de formulaire s'adaptent automatiquement au contenu
Autorisez les champs de formulaire à s'agrandir et à se réduire pour s'adapter à la saisie de l'utilisateur, par exemple lorsque l'utilisateur saisit du texte ou sélectionne une autre option. Appliquez des limites de taille maximale et minimale pour créer des champs de formulaire dynamiques et responsifs qui s'adaptent à la conception de la page.
Formulaires
Bonnes pratiques pour créer des formulaires Web accessibles, sécurisés et conviviaux. Utilisez ce guide lorsque vous créez ou modifiez des formulaires, des entrées et des flux d'envoi.
Mettre en surbrillance les champs remplis automatiquement par le navigateur que l'utilisateur n'a pas modifiés avec CSS :autofill
Utilisez CSS pour mettre en évidence les champs de formulaire qui ont été remplis automatiquement par le navigateur et qui n'ont pas été modifiés par l'utilisateur.
Envoi sécurisé par IME avec la touche Entrée
Implémentez la fonctionnalité "Appuyer sur Entrée pour envoyer" dans les zones de texte et les champs de saisie sur une seule ligne (chat, recherche, renommage intégré) de manière sécurisée pour les utilisateurs d'IME (éditeur de méthode de saisie) afin d'éviter l'envoi de texte incomplet.
Commentaires sur les champs obligatoires
Fournissez un message d'erreur pour les champs de formulaire obligatoires qui ont été ignorés ou laissés vides uniquement après l'interaction de l'utilisateur, afin d'éviter les erreurs préventives et de vous assurer que les commentaires sont opportuns et pertinents par rapport au parcours de l'utilisateur.
Sélecteur de fichiers multimédias enrichis (sélection personnalisable)
Créez un composant de sélection personnalisé dont les options peuvent contenir une mise en forme HTML complexe (par exemple, des images, des icônes et d'autres mises en forme enrichies) plutôt que du texte brut.
Interaction avec le menu de sélection
Vérifiez qu'une option autre que celle par défaut a été choisie dans un menu de sélection uniquement après que l'utilisateur a interagi avec la commande.
Validation de formulaire par OTP envoyé par SMS
Validez les numéros de téléphone des utilisateurs et les codes secrets à usage unique envoyés par SMS grâce à l'extraction automatique du code et à la saisie de formulaire accessible.
Valider la saisie après l'interaction
Affichez les commentaires de validation des champs de formulaire (par exemple, les exigences de complexité du mot de passe ou de format d'adresse e-mail) uniquement après que l'utilisateur a terminé son interaction initiale, afin d'éviter les erreurs prématurées lors du chargement de page ou pendant que l'utilisateur saisit du texte.

HTML

Composants Web accessibles
Rendez les éléments personnalisés accessibles par défaut, en définissant les rôles et l'état ARIA via le mixin ARIA ElementInternals, en gérant le focus avec delegatesFocus et en conservant les relations ARIA dans une seule racine shadow.
Éléments personnalisés
Définir, enregistrer et gérer le cycle de vie des éléments personnalisés autonomes, y compris les règles de constructeur, les rappels de cycle de vie, le calendrier de mise à niveau, la réflexion des attributs/propriétés et les conventions d'attribution de noms.
Éléments personnalisés associés à un formulaire
Faites en sorte qu'un contrôle personnalisé participe de manière native aux formulaires avec formAssociated et ElementInternals, en envoyant sa propre valeur, en s'intégrant à la validation des contraintes et en réagissant à la réinitialisation, à la désactivation et à la restauration de l'état.
HTML
Consignes orientées action pour l'architecture HTML moderne, la sémantique, les API interactives natives (Dialog, Popover, Details), la gestion du focus et la priorisation des ressources. Utilisez ce guide pour structurer des documents Web, implémenter des superpositions natives ou optimiser l'ordre de chargement des ressources.
Pré-afficher des éléments personnalisés
Effectuez le rendu côté serveur d'un élément personnalisé, puis hydratez-le sur place sans nouveau rendu ni flash de contenu sans style.
Shadow DOM, modèles et emplacements
Encapsulez le DOM et les styles d'un composant avec le Shadow DOM, construisez l'arborescence efficacement avec des modèles HTML et projetez le contenu utilisateur avec des slots.
Styliser des composants Web
Appliquez des styles au-delà de la limite du shadow DOM avec les sélecteurs :host, les propriétés héritées et personnalisées pour les thèmes, ::slotted et ::part, ainsi que les couches en cascade et les requêtes de conteneur dans les composants.
Présentation des composants Web
Principes d'orientation et transversaux pour la création et l'utilisation de composants Web, couvrant les éléments personnalisés, le Shadow DOM, les modèles et les emplacements, le Shadow DOM déclaratif, l'application de styles au-delà de la limite du Shadow DOM, les éléments personnalisés associés à un formulaire et les exigences d'accessibilité. Utilisez ce guide lorsque vous créez des composants d'interface utilisateur réutilisables, des systèmes de conception ou des éléments personnalisés affichés par le serveur.

CSS

Animer vers des tailles intrinsèques
Animez de manière fluide les composants interactifs (comme les accordéons, les menus et les fiches extensibles) vers et depuis leurs dimensions naturelles.
Calculer avec des tailles intrinsèques
Calculez la taille d'un élément en fonction de sa taille intrinsèque, tout en vous assurant qu'il respecte les contraintes de conception données.
Style basé sur l'état de l'enfant
Créez un composant qui modifie son style en fonction de l'état de l'un de ses éléments enfants. Par exemple, un composant qui s'affiche en mode clair ou mode sombre selon qu'un bouton d'activation/désactivation du thème est coché ou non.
Appliquer de manière conditionnelle du CSS en fonction de la compatibilité avec les règles @
Appliquez de manière conditionnelle certaines règles ou déclarations CSS uniquement si une certaine règle @ est compatible avec le navigateur.
Style basé sur le contenu
Créez un composant qui modifie sa mise en page selon qu'il contient ou non des éléments enfants spécifiques. Par exemple, si le composant contient une image, utilisez une mise en page multicolonne. Sinon, utilisez par défaut une mise en page en une seule colonne.
Mises en page CSS et responsive design
Mises en page CSS modernes telles que flexbox, grid, subgrid, les requêtes de conteneur, le positionnement des ancres et le dimensionnement intrinsèque. Utilisez cette compétence lors de la conception de composants d'interface utilisateur ou de mises en page responsives.
CSS : architecture moderne
Consignes pratiques pour l'architecture CSS moderne, y compris la cascade, les sélecteurs, la portée, l'imbrication et les jetons de conception. Utilisez ce guide lorsque vous créez des styles ou gérez des systèmes de conception.
Réactivité des jetons de conception
Définissez des jetons de conception d'ordre supérieur, comme les modes de densité (compact, normal, spacieux) ou les thèmes, et faites en sorte que les composants descendants réagissent directement aux modifications et de manière appropriée.
Scaling fluide
Ajustez de manière fluide les éléments tels que la taille de la police, l'espacement et la taille des contenus multimédias en fonction de la taille du conteneur parent, plutôt que d'utiliser des points d'arrêt fixes.
Propriétés de transformation individuelles
Animez ou remplacez des propriétés de transformation CSS individuelles (par exemple, translate, rotate, scale) indépendamment des autres propriétés de transformation sur un même élément.
Contrôle du rognage du menu de développement
Ajustez la limite de rognage visible d'un élément pour l'aligner sur le bord du contenu, le bord de la marge intérieure ou le bord de la bordure, ou sur un décalage spécifié par rapport à l'un de ces éléments. Vous bénéficiez ainsi d'un contrôle plus précis sur la façon dont le contenu est rogné.
Réduire la répétition des styles avec des fonctions CSS
Réduisez la répétition excessive des styles en encapsulant une logique de style complexe ou dynamique dans des fonctions réutilisables (par exemple, une fonction qui calcule un dégradé en fonction d'un ensemble de paramètres d'entrée).
Responsive design
Créez une UI qui s'adapte à la taille du conteneur et de la fenêtre d'affichage, y compris les requêtes de conteneur, les unités de fenêtre d'affichage dynamiques, les formats et la typographie responsive.
Combinaisons de sélecteurs et de règles @
Ciblez des éléments en fonction de l'intersection ou de l'union de sélecteurs et de règles @ conditionnelles, tout en minimisant les répétitions.
Adaptation des composants sémantiques
Créez des composants qui adaptent la logique visuelle en fonction du contexte sémantique à l'aide de requêtes de style de conteneur CSS.
Style adapté à la taille
Créez un composant dont les styles peuvent dépendre de manière conditionnelle de sa propre largeur ou hauteur, plutôt que de la largeur ou de la hauteur de la fenêtre d'affichage. Par exemple, un composant de fiche peut modifier sa mise en page en fonction de sa taille, ou un bouton d'incitation à l'action peut afficher un texte d'aide de manière conditionnelle en fonction de sa largeur.
Appliquer un style au parent avec :has()
Appliquez un style aux éléments parents d'un champ de formulaire (par exemple, les libellés ou les fieldsets) lorsque le champ n'est pas valide.
Appliquer un style aux éléments frères en fonction du nombre et de l'index
Créez des spectres visuels dynamiques ou des dispositions qui s'adaptent automatiquement au nombre d'éléments d'un groupe.

JavaScript

Calculer les différences entre les événements et formater les durées avec Temporal
Calculez le temps écoulé ou restant entre des dates et des heures, équilibrez les unités de durée et mettez en forme des durées localisées lisibles par l'humain à l'aide de Temporal.Duration et Intl.DurationFormat.
Capturer des données indépendantes de l'emplacement et des dates partielles avec Temporal
Modélisez des dates de calendrier, des heures, des dates partielles (anniversaires récurrents, dates d'expiration de cartes de crédit) et des intervalles mensuels récurrents indépendants de l'emplacement, sans dérive de fuseau horaire, à l'aide des types Temporal Plain.
Coordonner des événements mondiaux avec Temporal
Planifiez des réunions ou des événements futurs en les associant explicitement à un fuseau horaire géographique de l'IANA. Ainsi, les horaires des événements resteront exacts, quels que soient les changements d'heure d'été, les heures "sautées" ou "répétées" lors des changements d'heure.
Trier des codes temporels de haute précision avec Temporal.Instant
Analysez, triez et mesurez les intervalles entre les codes temporels ISO 8601 inférieurs à la milliseconde ou à la nanoseconde sans collisions de troncature de date à l'aide de Temporal.Instant.
Prise en charge des systèmes de calendrier mondiaux avec Temporal
Affichez et calculez avec précision les dates dans des systèmes de calendrier non grégoriens (par exemple, islamique, hébraïque ou chinois) pour les utilisateurs internationaux.

WebAssembly

Performances

Décomposer les tâches longues
Divisez les traitements synchrones lourds (calculs complexes et/ou boucles longues) ou les mises à jour du DOM pour permettre au navigateur de gérer les entrées utilisateur et de repeindre l'écran.
Calculer la durée totale d'utilisation au premier plan
Calculez le temps total qu'un utilisateur a réellement passé à consulter une page, à l'exclusion des périodes où l'onglet était en arrière-plan.
Dépendances asynchrones conditionnelles
Charger ou initialiser de manière conditionnelle des dépendances asynchrones (par exemple, en important des polyfills pour les fonctionnalités Web manquantes) sans nécessiter d'orchestration complexe entre toutes les dépendances de script d'une page.
Anti-rebond et traitement par lot de plusieurs événements d'analyse
Regroupez plusieurs événements d'analyse, de télémétrie et Core Web Vitals dans une seule balise pour minimiser la contention réseau et réduire la charge du serveur, tout en fournissant des mises à jour en temps réel.
Différer l'affichage des contenus lourds
Réduisez les délais d'affichage des pages Web riches en contenu (par exemple, les pages comportant de longs flux, de nombreux articles ou des tableaux de bord complexes) en différant l'affichage de tout contenu qui n'est pas immédiatement visible par l'utilisateur.
Reporter le travail jusqu'à la fin du défilement
Différez les opérations coûteuses telles que les mises à jour du DOM, la récupération de données, le suivi analytique ou le recalcul de la mise en page jusqu'à la fin du défilement pour maintenir des performances de défilement fluides.
Fournir des images décoratives optimisées
Fournissez des images décoratives optimisées (comme des arrière-plans, des icônes d'interface utilisateur ou des masques complexes) en proposant simultanément des formats d'image de nouvelle génération (comme AVIF ou WebP) et plusieurs densités de pixels (comme 1x et 2x). Le navigateur pourra ainsi négocier de manière dynamique la meilleure combinaison de taille de fichier et de qualité visuelle en fonction des capacités de l'appareil de l'utilisateur.
Déclasser les récupérations en arrière-plan
Définissez une priorité plus faible pour les récupérations de données en arrière-plan effectuées avec l'API Fetch afin d'éviter les conflits réseau avec les requêtes initiées par l'utilisateur.
Détecter l'état de visibilité initial
Déterminez de manière fiable si une page a été initialement chargée en arrière-plan, même si le script est chargé de manière asynchrone après que l'utilisateur a mis la page au premier plan.
Traitement efficace en arrière-plan
Préservez les ressources système et l'autonomie de la batterie en mettant en pause l'exécution de JavaScript en arrière-plan (comme les animations <canvas>, l'affichage WebGL ou l'interrogation de données WebSocket à haute fréquence) lorsque le composant est hors de l'écran, puis reprenez-la juste à temps lorsqu'il revient dans la vue.
Transitions de vue SPA plus rapides grâce à la mise en cache de l'état
Accélérez les transitions vers les vues précédemment consultées dans une application monopage (SPA) en préservant leur état DOM structurel au lieu de les détruire et de les recréer à chaque navigation.
Tests A/B côté client sans scintillement
Diffuser et afficher des tests A/B, des tests multivariables ou d'autres tests à l'aide de JavaScript côté client pour modifier ou injecter du code HTML, CSS et JavaScript sans que le contenu d'origine ne s'affiche d'abord avant de clignoter ou de scintiller pour afficher le contenu du test.
Identifier les causes d'un mauvais INP
Identifiez les scripts JavaScript lents et les autres causes d'une mauvaise réactivité de l'INP (Interaction to Next Paint).
Identifier le code JavaScript lourd
Identifier les scripts les plus responsables des frames d'animation longs
Améliorer les performances de chargement de la page suivante
Améliorez les performances de chargement des pages en préchargeant ou en prérendant les pages que l'utilisateur est susceptible de consulter ensuite.
Chargement différé des vidéos et des contenus audio
Différez le téléchargement des éléments vidéo et audio hors écran, y compris les images poster vidéo et les données multimédias préchargées, jusqu'à ce que le lecteur multimédia s'approche de la fenêtre d'affichage afin d'économiser de la bande passante et de réduire la contention réseau lors du chargement de page initial.
Mesurer le temps d'affichage des interactions et de la navigation logicielle
Mesurez le temps nécessaire aux interactions utilisateur et aux navigations côté client pour afficher de nouvelles mises à jour de contenu à l'écran.
Optimiser la priorité des images
Optimisez la priorité de chargement des images candidates au Largest Contentful Paint (LCP) et dépriorisez les images non critiques pour réduire les délais de chargement des ressources critiques.
Optimiser la priorité de préchargement
Optimisez la priorité relative du contenu préchargé pour réduire les délais de chargement des ressources critiques.
Optimiser la priorité des scripts
Optimisez la priorité de chargement des scripts en boostant les scripts asynchrones critiques et en dépriorisant les scripts non essentiels ou situés en fin de corps pour améliorer le séquençage et réduire les délais.
Optimiser les interactions dans les mises en page complexes
Rendez les interactions plus rapides et plus réactives (en réduisant les scores Interaction to Next Paint (INP)) en évitant de recalculer la mise en page dans les mises en page complexes, comme les tableaux de bord contenant beaucoup de données ou les grilles de type feuille de calcul.
Streaming HTML dans le désordre (OOO)
Mettez à jour une page de manière déclarative avec du contenu diffusé ultérieurement dans le même document HTML ou via des API JavaScript impératives.
Performances
Consignes pratiques pour optimiser les applications Web modernes. Utilisez ce guide pour auditer les performances, optimiser les métriques de chargement, corriger les interactions lentes et optimiser les Core Web Vitals (LCP, INP, CLS).
Mesurez de manière fiable les données analytiques et télémétriques de l'intégralité des sessions
Suivez de manière fiable les données analytiques, les métriques Core Web Vitals, les erreurs et les données de télémétrie tout au long de la visite de l'utilisateur sur la page, et différez l'envoi des données jusqu'à ce que l'utilisateur quitte la page.
Pseudo-éléments optimisés pour la résolution
Utilisez des images optimisées pour la résolution dans les pseudo-éléments CSS (comme ::before et ::after) afin de réduire le nombre de nœuds DOM.
Planifier des tâches par priorité
Planifiez des tâches avec différentes priorités pour vous assurer que les tâches critiques sont exécutées en premier, tandis que les tâches en arrière-plan sont différées.

Accessibilité

Sécurité

Comparer et valider les origines et les sites Web
Comparez et validez les origines Web et les sites de manière sécurisée dans les messages et les URL interdocuments, sans analyse de chaîne sujette aux erreurs.
Chiffrer des données côté client avec WebCrypto
Établissez des secrets partagés à l'aide de l'encapsulation de clé publique ou de l'accord de clé (y compris la protection hybride et post-quantique), et chiffrez les données sensibles dans le navigateur avec un chiffrement authentifié.
Accès au réseau local
Accédez aux ressources du réseau local ou de l'interface de rebouclage d'un utilisateur à partir d'une application Web publique.
Authentification par clé d'accès
Authentifier un utilisateur connu avec une clé d'accès pour la connexion principale.
Création conditionnelle de clé d'accès (promotion après connexion)
Enregistrez silencieusement une clé d'accès pour un utilisateur existant après une connexion réussie par mot de passe.
Gestion des clés d'accès
Autorisez les utilisateurs à afficher et à gérer les clés d'accès enregistrées dans leur compte.
Réauthentification par clé d'accès
Validez l'identité d'un utilisateur connecté à l'aide de ses clés d'accès existantes avant d'effectuer une action sensible.
Enregistrement d'une clé d'accès
Enregistrez une clé d'accès pour un compte utilisateur existant.
Présentation des clés d'accès
Principes d'orientation et transversaux complets pour implémenter WebAuthn et les clés d'accès dans les applications Web. Utilisez ce guide pour l'enregistrement, l'authentification, la gestion ou la réauthentification des clés d'accès.
Empêcher les attaques XSS basées sur le DOM avec les Trusted Types
Empêchez les attaques XSS basées sur le DOM en définissant une règle Trusted Types pour nettoyer le code HTML non fiable, en utilisant la règle lors de l'écriture dans des récepteurs DOM tels que innerHTML et en appliquant les Trusted Types via Content Security Policy.
Connexions rapides avec le mode d'interface utilisateur immédiat
Authentifiez les utilisateurs connus sur place avec leurs clés d'accès ou mots de passe enregistrés avant d'accéder à une page de connexion ou d'interrompre leur workflow.
Restreindre les connexions réseau sortantes avec des listes d'autorisation de connexion
Limitez une page ou un worker à communiquer uniquement avec une liste d'autorisation explicite de points de terminaison réseau afin d'empêcher les requêtes tierces non autorisées et l'exfiltration de données côté client.
Nettoyer le code HTML non approuvé
Analysez et affichez de manière sécurisée le contenu HTML non fiable provenant des entrées utilisateur en supprimant les éléments et attributs non sécurisés.
Sécuriser les sous-ressources externes avec l'intégrité des sous-ressources, CORS et la règle de provenance
Vérifiez l'intégrité cryptographique des scripts, feuilles de style, polices et images externes chargés à partir d'origines tierces, et contrôlez si ces requêtes envoient des identifiants ou des URL de provenance.
Signer et vérifier des données avec WebCrypto
Signez et vérifiez des messages, des jetons ou des artefacts dans le navigateur à l'aide de clés asymétriques classiques ou résistantes aux attaques quantiques (post-quantiques) pour garantir l'intégrité et l'authenticité des données.
Valider la propriété de l'adresse e-mail
Vérifiez qu'un utilisateur est propriétaire d'une adresse e-mail lors de la création, de la connexion ou de la récupération d'un compte sans envoyer de code secret à usage unique ni d'e-mail contenant un lien magique.
Sécurité sur le Web
Consignes de sécurité préventives pour les développeurs Web (XSS, CSP, cookies, isolation multi-origine). Utilisez cette compétence pour guider le processus d'audit, de test et de déploiement des stratégies de sécurité en toute sécurité.

Confidentialité

PWA

IA intégrée

WebMCP