WOFF2

Web Open Font Format 2.0 — la référence absolue pour les polices web, avec la compression Brotli qui offre les tailles de fichiers les plus petites.

.woff2 Web Open Font Format 2.0
TypeBinaire compressé
CompressionBrotli
Taille du fichierLa plus petite (~30 % plus petite que WOFF)
Prise en charge97 %+ des navigateurs
Idéal pourProjets web modernes (recommandé)
BobcornToujours inclus

Qu'est-ce que WOFF2 ?

WOFF2 a été développé par Google et est devenu une recommandation W3C en mars 2018. Il s'appuie sur le concept WOFF original mais remplace la compression zlib par Brotli — un algorithme de compression également développé par Google — qui atteint des taux de compression significativement meilleurs.

Mais WOFF2 n'est pas simplement « WOFF avec une meilleure compression ». Il introduit une transformation de prétraitement qui restructure les données de police avant la compression, les rendant beaucoup plus compressibles. Pour les contours TrueType, cela signifie l'application d'un codage prédictif aux coordonnées des glyphes — encodant chaque point comme un delta par rapport à une valeur prédite plutôt que comme une coordonnée absolue. Le résultat est un flux d'octets beaucoup plus redondant que Brotli peut compresser de manière agressive.

Cette approche en deux étapes — prétraitement spécifique au domaine suivi d'une compression générale — explique pourquoi WOFF2 produit systématiquement les fichiers de police les plus petits de tous les formats.

Fonctionnement

WOFF2 applique un pipeline de compression en deux phases aux données source de la police :

  • Phase 1 : transformation de prétraitement — des transformations spécifiques aux polices restructurent les données pour maximiser la compressibilité. Pour les contours de glyphes TrueType, cela utilise le codage prédictif des coordonnées — chaque point est encodé comme la différence par rapport à une position prédite, ce qui produit des nombres beaucoup plus petits. Des transformations similaires sont appliquées aux autres tables de polices.
  • Phase 2 : compression Brotli — les données prétraitées sont ensuite compressées avec Brotli, qui combine la compression à fenêtre glissante LZ77 avec le codage de Huffman et un dictionnaire statique intégré. Brotli atteint une compression 20-30 % meilleure que zlib sur des données de polices typiques.

Côté navigateur, le processus s'inverse : décompression Brotli suivie de transformations inverses pour reconstruire les tables de polices originales. Malgré l'étape supplémentaire, la décompression WOFF2 est en réalité plus rapide que WOFF1 — Brotli est conçu pour un décodage rapide, et le fichier plus petit se transfère plus vite sur le réseau.

Pile de polices typique avec WOFF2
@font-face {
  font-family: 'MyIcons';
  src: url('icons.woff2') format('woff2');
  font-display: swap;
}

.icon { font-family: 'MyIcons'; }
.icon-home::before { content: '\E001'; }

Notez que nous ne listons qu'un seul src — WOFF2 seul. Avec une couverture de 97 %+ des navigateurs, de nombreux projets modernes n'ont plus besoin d'un format de solution de repli. La directive font-display: swap indique au navigateur d'afficher immédiatement le texte avec une police de remplacement pendant le chargement de la police d'icônes, évitant ainsi le texte invisible.

Avantages et inconvénients

    Avantages
  • Meilleur taux de compression de tous les formats de polices
  • Décompression la plus rapide (Brotli est optimisé pour la vitesse de décodage)
  • Recommandation W3C (norme web officielle depuis 2018)
  • Pris en charge par 97 %+ des navigateurs mondiaux
  • Norme de référence de l'industrie pour les polices web
    Inconvénients
  • Non pris en charge par aucune version d'Internet Explorer
  • Nécessite des outils de conversion (ne peut pas être édité à la main comme SVG Font)
  • Non adapté à l'installation de polices au niveau du système d'exploitation (utilisez TTF pour cela)

Prise en charge par les navigateurs

WOFF2 bénéficie d'une large prise en charge sur tous les navigateurs modernes. La seule lacune notable est Internet Explorer, qui a été retiré par Microsoft en juin 2022.

NavigateurVersion minimale
Chrome36+
Firefox39+
Safari12+
Edge14+
Opera23+
Internet ExplorerNon pris en charge

La couverture mondiale combinée se situe à environ 97 %. Les 3 % restants sont presque entièrement constitués d'installations IE héritées et de très anciens navigateurs mobiles.

Conseil
En 2024 et au-delà, WOFF2 uniquement est suffisant pour la grande majorité des projets web. N'ajoutez WOFF comme solution de repli que si vos analyses montrent un trafic IE 11 significatif.

Comparaison des tailles de fichiers

Pour illustrer l'avantage de compression de WOFF2, voici des tailles de fichiers typiques pour une police d'icônes contenant 200 glyphes :

FormatTaille typiqueRéduction vs TTF
.ttf~80 KoRéférence
.woff~48 Ko~40 % plus petit
.woff2~34 Ko~58 % plus petit

Les économies s'accumulent avec des ensembles d'icônes plus grands. Une police de 500 glyphes peut peser 200 Ko en TTF, 120 Ko en WOFF, et seulement 82 Ko en WOFF2. Sur des milliers de chargements de pages, ces kilo-octets se traduisent directement en temps d'affichage plus rapides et en coûts de bande passante réduits.

Quand utiliser WOFF2

Toujours. WOFF2 devrait être le format par défaut pour tout déploiement de police d'icônes sur le Web. Il fournit les fichiers les plus petits, la décompression la plus rapide et une prise en charge quasi universelle des navigateurs.

Le seul scénario où vous n'utiliseriez pas WOFF2 seul est si vous ciblez Internet Explorer — auquel cas, associez-le à WOFF comme solution de repli :

@font-face {
  font-family: 'MyIcons';
  src: url('icons.woff2') format('woff2'),
       url('icons.woff') format('woff');
  font-display: swap;
}

Les navigateurs modernes utiliseront le fichier WOFF2 ; IE 11 se repliera sur WOFF. Tout le monde obtient la police, tout le monde l'obtient compressée.

Dans Bobcorn
WOFF2 est toujours inclus dans l'export de Bobcorn — ce n'est pas optionnel car c'est le format web essentiel. Bobcorn utilise la bibliothèque ttf2woff2 avec la compression Brotli pour des résultats optimaux. Vous trouverez le fichier .woff2 généré aux côtés des CSS et des pages de démonstration dans chaque export.
Conseil de performance
Pour de meilleures performances de chargement, utilisez font-display: swap dans votre déclaration @font-face. Cela permet au navigateur d'afficher immédiatement le texte avec une police de remplacement pendant le chargement de la police d'icônes, évitant ainsi le « flash de texte invisible » (FOIT) qui peut rendre les pages non réactives.