Le poids caché des polices web
Une identité typographique se paie en octets, et la facture est souvent démesurée : quatre graisses d'une famille classique en WOFF2, c'est facilement 400 Ko, soit davantage que le HTML, le CSS et le JavaScript réunis d'un site sobre. Trois leviers ramènent ce poste à la raison, sans renoncer au caractère.
La police variable d'abord. Une seule ressource couvre tout l'axe des graisses : là où quatre fichiers statiques dépassent 350 Ko, une variable sous-ensemble latin en pèse quelques dizaines. À charge égale, l'espace de design s'élargit, du plus fin au plus gras, sans multiplier les requêtes.
Le sous-ensemble ensuite. Un site français n'a pas
besoin des glyphes cyrilliques, grecs ou vietnamiens. Le découpage
unicode-range (que @fontsource applique
automatiquement) évite de charger ce qui ne sera jamais affiché. Gain
courant : 60 à 80 % du poids initial.
La discipline enfin. Deux à trois familles suffisent à
une hiérarchie complète : une voix pour les titres, une pour le texte,
une monospace pour les données chiffrées. Chaque graisse supplémentaire
doit justifier sa présence, et font-display: swap garantit
que le texte reste lisible pendant le chargement : la typographie est un
raffinement, jamais un préalable à la lecture.
Sur ce site, tout le poste typographique tient en une seule ressource web : une grotesque technique, variable et sous-ensemblée au latin — une vingtaine de kilo-octets, auto-hébergée, sans aucune requête tierce — épaulée par une fonte système, Courier, pour les données chiffrées (zéro octet de plus). Une fonte web quand elle porte le caractère, aucune quand la machine suffit : la discipline, ce n'est pas s'interdire les fontes, c'est n'en envoyer qu'une, et jamais un traceur.