Chargement des polices web : font-display, preload et sous-ensembles

Chargement des polices web

Chargement des polices web : font-display, preload, sous-ensembles | We.Inc

Voyez ce que fait chaque valeur de font-display grâce à un simulateur de chronologie, puis utilisez preload, preconnect, des sous-ensembles avec unicode-range et des métriques de fallback ajustées pour éviter le layout shift.

Un chargement rapide des polices tient en quatre gestes : signaler la police tôt au navigateur (preconnect ou preload), envoyer de petits fichiers WOFF2 qui ne contiennent que les caractères nécessaires, choisir une valeur de font-display adaptée au texte, et dimensionner la police de secours pour qu'elle corresponde afin que rien ne saute. Utilisez font-display: optional quand éviter le layout shift est la priorité.

Les valeurs de font-display en un coup d'œil

Les polices font partie des rares ressources capables de masquer votre texte ou de bousculer la mise en page. Faites glisser le curseur ci-dessous pour régler le temps que met une police à arriver et observez ce que chaque valeur de font-display affiche à chaque instant, puis copiez les techniques de chargement qui gardent les pages stables.

Questions fréquentes

Que fait font-display: swap ?

Il donne à la police une période de blocage extrêmement courte, que la spécification CSS Fonts recommande de limiter à 100ms ou moins, et une période de remplacement infinie. Le texte apparaît presque immédiatement dans la police de secours et passe à la police web dès qu'elle a fini de charger.

font-display: swap est-il mauvais pour le CLS ?

Il peut l'être. Si la police de secours et la police web ont des largeurs ou des hauteurs de ligne différentes, le changement tardif déplace le texte et le contenu situé en dessous. Corrigez cela avec size-adjust et les surcharges ascent, descent et line-gap sur la police de secours, ou utilisez optional.

Pourquoi ma police préchargée est-elle téléchargée deux fois ?

Les polices sont récupérées en mode CORS anonyme, donc le lien de preload a besoin de l'attribut crossorigin même quand le fichier est sur la même origine. Sans lui, le preload ne correspond pas à la vraie requête et la police est téléchargée à nouveau.

Faut-il précharger Google Fonts ?

En général non. web.dev avertit que le préchargement contourne une partie de la négociation de contenu propre au navigateur, y compris unicode-range, si bien que vous risquez de télécharger un sous-ensemble que la page n'utilise jamais. Faites plutôt un preconnect vers fonts.googleapis.com et fonts.gstatic.com, ou auto-hébergez et préchargez votre propre fichier.

Comment unicode-range fait-il économiser des octets ?

Quand une règle @font-face a un unicode-range, le navigateur ne télécharge ce fichier que si la page utilise au moins un caractère de la plage. Découpez une police en fichiers latin, cyrillique ou grec, et chaque visiteur ne télécharge que les écritures présentes sur la page.

La chronologie d'affichage des polices

Pourquoi les remplacements tardifs provoquent du layout shift

Les sous-ensembles

Police auto-hébergée avec preload

Préchargez le seul fichier dont le premier écran a besoin

as, type et crossorigin doivent tous être présents. La règle @font-face est en ligne dans le head pour être découverte immédiatement.

Fichiers découpés avec unicode-range

Sous-ensembles latin et cyrillique d'une même famille

Les deux règles partagent le même nom de famille. Une page rédigée uniquement en anglais ne télécharge jamais le fichier cyrillique.

Une police de secours dimensionnée pour correspondre

Police de secours locale ajustée pour réduire le layout shift

Les nombres sont des valeurs d'exemple : mesurez votre propre police par rapport à la police de secours et ajustez-les jusqu'à ce que les deux s'alignent.

Google Fonts avec preconnect et un sous-ensemble pour un titre

La seconde feuille de style ne demande que les lettres du texte du logo, ce qui garde ce fichier minuscule.

Simulateur de chronologie font-display

Vue de départ : la police met 1.5 seconde à charger ; faites glisser le curseur pour modifier ce délai. Le gris correspond au texte invisible, l'ambre à la police de secours, le bleu à la police web.

La police arrive après {n}s

Police web non utilisée lors de cet affichage de la page

Remplacement visible : le texte peut se réorganiser

Aucun remplacement visible

Échelle : de 0 à 5 secondes. Avec optional, la spécification permet au navigateur d'abandonner un téléchargement tardif ou de le terminer en très basse priorité.

Périodes recommandées par la spécification

Valeur

Périodes

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site