Media, Images & Files

Font variabili in produzione: i compromessi di cui nessuno ti parla

I font variabili possono semplificare il tuo stack di font e migliorare la flessibilità del design, ma non sono una vittoria automatica per le prestazioni.

The Wux Webtools Team The Wux Webtools Team 10 minuti di lettura Assistito da IA, revisionato da umani
Abstract illustration of variable font axes, glyph outlines, and web performance indicators in a browser workspace.
Indice
  1. I font variabili non sono una compressione magica dei font
  2. Il vantaggio evidente: meno file, tipografia più espressiva
  3. Il primo compromesso nascosto: un file può essere più grande dei file di cui hai davvero bisogno
  4. Caso A: sito marketing con molti pesi
  5. Caso B: app di prodotto con solo regular e bold
  6. Il secondo compromesso: il subsetting diventa più importante, non meno
  7. Il terzo compromesso: il CSS può diventare troppo furbo
  8. Il quarto compromesso: le differenze di rendering esistono ancora
  9. Il quinto compromesso: il caching può andare in entrambe le direzioni
  10. Il sesto compromesso: Lighthouse non spiegherà tutta la storia
  11. Una checklist pratica per la produzione
  12. 1. Quali file statici sta sostituendo?
  13. 2. Quali assi esporrai?
  14. 3. Puoi sottoinsiemare in sicurezza?
  15. 4. Le metriche di fallback sono configurate?
  16. 5. `font-display` è intenzionale?
  17. 6. Hai testato dispositivi di fascia bassa?
  18. 7. Esiste un piano di rollback?
  19. Quando i font variabili sono una buona scelta in produzione
  20. La regola pratica per la produzione

I font variabili non sono una compressione magica dei font

I font variabili vengono spesso presentati come la risposta ordinata alla tipografia web: un file, molti pesi, meno richieste, design system più fluidi. Questa promessa è corretta nella direzione, ma incompleta.

In produzione, un font variabile è meno simile alla sostituzione di sei file con un solo file e più simile all’adozione di un nuovo runtime tipografico. Ottieni controllo espressivo su peso, larghezza, inclinazione, dimensione ottica e talvolta assi personalizzati. Erediti anche nuove decisioni su dimensione dei file, rendering nei browser, comportamento dei fallback, governance del design e misurazione delle prestazioni.

Il risultato può essere eccellente. Può anche essere peggiore della configurazione statica che ha sostituito.

Se il tuo sito attuale carica cinque pesi della stessa famiglia, un font variabile ben sottoinsiemato può ridurre le richieste e semplificare il CSS. Se il tuo sito carica un peso regular e un bold, un font variabile può aggiungere byte per una flessibilità da cui nessun utente trarrà mai beneficio. Questo è il compromesso di produzione che si tende a saltare.

Per una base più ampia sulla strategia di caricamento dei font, la nostra guida su perché i web font sono ancora il miglior intervento facile sulle prestazioni nella maggior parte dei siti è un utile complemento. I font variabili non cambiano i fondamentali: inviare meno byte, ridurre il ritardo di rendering e rendere accettabile il testo di fallback.

Il vantaggio evidente: meno file, tipografia più espressiva

Una configurazione tradizionale con font statici di solito assomiglia a questa:

  • Regular 400
  • Italic 400
  • Medium 500
  • Semibold 600
  • Bold 700
  • Forse un display face separato

Ogni file viene scaricato, memorizzato in cache e renderizzato in modo indipendente. Se la pagina usa più pesi above the fold, le richieste si accumulano rapidamente.

Un font variabile può condensare diversi di questi pesi in un solo file. Invece di caricare Inter-Regular.woff2, Inter-Medium.woff2 e Inter-Bold.woff2, carichi un unico file variabile e usi font-weight: 400 700 su un intervallo continuo.

Questo sblocca benefici reali:

  • Meno file di font da gestire
  • Interpolazione più coerente tra i pesi
  • Tipografia responsive a grana fine
  • Sistemi di tema più semplici
  • Migliore allineamento con i design token

Per i design system, il controllo è particolarmente utile. L’etichetta di un pulsante può usare 580 invece di essere costretta a 500 o 600. Il titolo di una card stretta può usare un asse di larghezza leggermente condensato, se il font lo supporta. Un titolo display può usare il dimensionamento ottico quando disponibile.

Ma l’esistenza di questi controlli non significa che dovresti usarli tutti.

Il primo compromesso nascosto: un file può essere più grande dei file di cui hai davvero bisogno

Un font variabile contiene dati di interpolazione per uno spazio di design. Questo spazio di design ha un costo. Un singolo file di font variabile può essere più grande di uno o due file di font statici.

Non è un problema quando sostituisce molti file. È un problema quando sostituisce uno stack essenziale.

Considera due casi comuni:

Caso A: sito marketing con molti pesi

Il sito usa 300, 400, 500, 600, 700 e corsivi tra le pagine. Un font variabile, attentamente sottoinsiemato, probabilmente aiuta. Riduce l’overhead delle richieste e semplifica la manutenzione futura.

Caso B: app di prodotto con solo regular e bold

L’interfaccia usa 400 e 700, con font di sistema come fallback. Un font variabile può aggiungere byte non necessari. La flessibilità è piacevole in Figma, ma non sempre utile nel browser.

L’errore è confrontare “un file variabile” con “molti file statici teorici” invece di confrontarlo con i file che le tue pagine reali usano attualmente.

Misura i byte di font effettivamente caricati sui template chiave. Poi testa la versione variabile con lo stesso sottoinsieme di caratteri e la stessa strategia di preload. Non dare per scontato che la versione variabile vinca.

Il secondo compromesso: il subsetting diventa più importante, non meno

I font variabili rendono il subsetting più prezioso perché il file di base può contenere molto: glifi, supporto linguistico, funzionalità OpenType, più assi e metadati.

La maggior parte dei siti in produzione non ha bisogno di ogni glifo di un font. Se servi solo contenuti in inglese, probabilmente non hai bisogno di copertura paneuropea completa, cirillico, greco, vietnamita e ogni blocco di simboli. Se servi più lingue, potresti comunque preferire sottoinsiemi specifici per lingua invece di un file universale.

L’approccio pratico di solito è:

  1. Mantenere un sottoinsieme Latin di base per la maggior parte degli utenti.
  2. Aggiungere sottoinsiemi estesi solo dove il contenuto li richiede.
  3. Usare unicode-range per lasciare che il browser selezioni il file giusto.
  4. Mantenere fallback statici per script rari, se necessario.

È qui che i font variabili possono diventare scomodi. Alcune pipeline di font sottoinsiemano facilmente i font statici ma gestiscono male assi variabili, hinting o metadati. Verifica sempre che il font prodotto si comporti ancora correttamente lungo l’intervallo di assi che prevedi di usare.

Un sottoinsieme rotto è peggiore di un font grande. Fallisce in silenzio: rendering strani, glifi mancanti, pesi incoerenti o cambiamenti di layout che compaiono solo in una locale specifica.

Il terzo compromesso: il CSS può diventare troppo furbo

I font variabili espongono gli assi tramite CSS. Assi standard come peso e larghezza si mappano in modo pulito su proprietà come font-weight e font-stretch. Gli assi personalizzati spesso usano font-variation-settings.

Questa potenza tenta i team a diventare troppo ingegnosi:

.card-title {
  font-variation-settings: "wght" 623, "wdth" 92;
}

Questo può essere tecnicamente valido, ma raramente è una buona interfaccia per un design system. Valori di assi casuali sparsi nel CSS sono difficili da revisionare, difficili da rifattorizzare e facili da usare male.

Preferisci design token o utility nominate:

:root {
  --font-weight-body: 400;
  --font-weight-heading: 680;
  --font-width-compact: 94;
}

.card-title {
  font-weight: var(--font-weight-heading);
  font-stretch: var(--font-width-compact);
}

Usa le proprietà CSS standard quando possibile. Riserva font-variation-settings agli assi che non hanno una proprietà di livello superiore.

Fai attenzione anche alle animazioni. Animare peso o larghezza può essere elegante a piccole dosi, ma può anche causare reflow, instabilità visiva e lavoro non necessario su dispositivi poco potenti. La tipografia non dovrebbe diventare un parco giochi del motion solo perché il font lo permette.

Il quarto compromesso: le differenze di rendering esistono ancora

Il supporto dei browser moderni per i font variabili è solido, ma il rendering non è identico ovunque. Rasterizzatori di testo del sistema operativo, motori dei browser, antialiasing e hinting dei font influenzano tutti il risultato.

Un peso 500 di un font variabile potrebbe non apparire esattamente come il file statico 500 della stessa famiglia. In alcune famiglie, le istanze statiche sono ottimizzate manualmente, mentre le istanze variabili interpolate sono generate matematicamente. A dimensioni piccole, questa differenza può contare.

Questo è particolarmente rilevante per testo del corpo, navigazione, tabelle dense ed etichette UI. Più la tua interfaccia è ricca di testo, più dovresti testare condizioni di lettura reali, non solo la tipografia hero.

Se stai rivedendo il tuo sistema tipografico mentre passi ai font variabili, parti dalla leggibilità invece che dalla novità. La nostra guida pratica alla tipografia leggibile sul web moderno copre le scelte meno appariscenti — lunghezza di riga, dimensione, contrasto, spaziatura — che di solito contano più dell’avere 1.000 pesi di font disponibili.

Il quinto compromesso: il caching può andare in entrambe le direzioni

Un singolo file di font variabile può essere memorizzato in cache una volta e riutilizzato tra le pagine. Questo è positivo.

Ma se il file è grande e blocca il rendering, le prime visite pagano tutto il costo in anticipo. I font statici a volte possono essere caricati in modo più selettivo: regular prima per il testo del corpo, bold dopo, display solo sulle pagine che ne hanno bisogno.

Non esiste una risposta universale. La configurazione giusta dipende dai pattern di traffico:

  • Gli utenti visitano molte pagine per sessione? Un file variabile condiviso può ripagare.
  • Gli utenti arrivano su un articolo e se ne vanno? File statici più piccoli possono essere migliori.
  • La homepage ha bisogno di un solo peso? Non pre-caricare un grande spazio di design per pagine future.
  • L’app è dietro login con visite ripetute frequenti? Il riuso della cache diventa più prezioso.

Anche il preload richiede misura. Pre-carica il font richiesto per il testo above the fold, non ogni font possibile. Un preload è una rivendicazione di priorità. Troppe rivendicazioni di priorità diventano rumore.

Il sesto compromesso: Lighthouse non spiegherà tutta la storia

Gli strumenti di performance possono mostrare byte di font inutilizzati, richieste che bloccano il rendering, layout shift e costo di rete. Non possono dirti se la flessibilità visiva vale il payload.

Una migrazione a font variabili dovrebbe essere valutata con diversi segnali:

  • Byte totali di font trasferiti alla prima vista
  • Numero di richieste di font
  • Impatto sul Largest Contentful Paint
  • Cumulative Layout Shift dovuto agli scambi di font
  • Comportamento della cache nelle visite ripetute
  • Corrispondenza visiva con i design approvati
  • Leggibilità alle dimensioni comuni

Se un report diventa rosso dopo una migrazione di font, non farti prendere dal panico. Il problema potrebbe essere l’ordine di preload, le metriche di fallback o una mancata corrispondenza del sottoinsieme, invece del font variabile in sé. La nostra guida su come leggere un report Lighthouse senza farsi prendere dal panico è pertinente qui: tratta i punteggi di laboratorio come indizi diagnostici, non come un verdetto.

Una checklist pratica per la produzione

Prima di rilasciare un font variabile, rispondi a queste domande:

1. Quali file statici sta sostituendo?

Elenca i file effettivamente usati in produzione, non ciò che il design system supporta in teoria. Includi pesi, stili, set di caratteri e template di pagina.

2. Quali assi esporrai?

La maggior parte dei team dovrebbe esporre il peso, forse la larghezza, e raramente altro. La dimensione ottica può essere utile se il font la supporta bene, ma va testata. Gli assi personalizzati dovrebbero avere uno scopo di prodotto chiaro.

3. Puoi sottoinsiemare in sicurezza?

Esegui controlli di regressione visiva dopo il subsetting. Testa caratteri accentati, punteggiatura, simboli di valuta, icone se incluse e tutte le lingue supportate.

4. Le metriche di fallback sono configurate?

Usa strumenti CSS moderni come size-adjust, ascent-override, descent-override e line-gap-override dove appropriato. Buone metriche di fallback riducono il layout shift durante il caricamento dei font.

5. font-display è intenzionale?

font-display: swap è comune, ma non sempre perfetto. Migliora la visibilità del testo, ma può creare uno scambio evidente se le metriche di fallback sono scarse. optional può funzionare per font non critici, quando evitare interruzioni conta più della garanzia della tipografia di brand.

6. Hai testato dispositivi di fascia bassa?

Un font che sembra andare bene su un laptop da sviluppatore può renderizzare lentamente su hardware Android economico. Testa almeno un dispositivo poco potente o un profilo throttled.

7. Esiste un piano di rollback?

Le modifiche ai font influenzano ogni pagina. Mantieni disponibile la vecchia configurazione statica abbastanza a lungo da poter tornare indietro rapidamente se compaiono problemi di rendering, localizzazione o performance.

Quando i font variabili sono una buona scelta in produzione

Di solito vale la pena considerare i font variabili quando:

  • Usi tre o più pesi della stessa famiglia.
  • Mantieni un design system su molti template.
  • Hai bisogno di tipografia responsive con controllo di larghezza o dimensione ottica.
  • Gli utenti navigano comunemente più pagine per sessione.
  • Puoi sottoinsiemare e testare correttamente la pipeline dei font.

Sono meno convincenti quando:

  • Ti servono solo regular e bold.
  • Il file variabile è molto più grande della tua configurazione attuale.
  • Il font ha una scarsa interpolazione alle dimensioni del testo.
  • Il tuo team spargerà valori di assi arbitrari nel CSS.
  • Non puoi testare localizzazione e comportamento dei fallback.

La visione sobria è questa: i font variabili sono una capacità, non un’ottimizzazione per impostazione predefinita. Premiano i team che già gestiscono i font con cura. Puniscono i team che trattano la tipografia come decorazione e il caricamento dei font come un ripensamento.

<!-- tool-cta:start -->

💡 Prova questo: Quando crei un sottoinsieme e impacchetti un font variabile per la produzione, Webfont Generator genera output WOFF2 con CSS corrispondente.

<!-- tool-cta:end -->

La regola pratica per la produzione

Usa i font variabili quando riducono la complessità o abilitano un risultato di design chiaro. Non usarli perché “un file” suona più pulito.

Le migliori implementazioni in produzione tendono a essere noiose: un font variabile attentamente sottoinsiemato, un piccolo numero di valori di asse approvati, fallback sensati, preload misurato e test su dispositivi reali. Non è entusiasmante quanto una possibilità tipografica infinita. È molto più probabile che migliori il tuo sito.

Domande frequenti

I font variabili sono migliori per le prestazioni?
A volte. Possono ridurre le richieste e sostituire diversi file statici, ma un font variabile può essere più grande dell’uno o due file statici di cui una pagina ha davvero bisogno. Misura byte trasferiti, numero di richieste, tempi di rendering e comportamento della cache prima di decidere.
Dovrei usare font-variation-settings per tutto?
No. Usa proprietà CSS standard come font-weight e font-stretch quando si mappano sull’asse di cui hai bisogno. Riserva font-variation-settings agli assi personalizzati o ai casi senza una proprietà CSS di livello superiore.
I font variabili funzionano nei browser moderni?
Sì, il supporto è solido nei principali browser attuali. Le preoccupazioni più importanti in produzione sono dimensione dei file, differenze di rendering, qualità del subsetting, comportamento dei fallback e se browser più vecchi o webview incorporate contano per il tuo pubblico.
Posso animare gli assi dei font variabili?
Tecnicamente sì. In produzione, usa misura. Animare peso o larghezza può causare movimento del layout o costo di rendering, soprattutto sui dispositivi di fascia bassa. Mantienilo sottile, testa le prestazioni e rispetta le preferenze di riduzione del movimento dove rilevanti.
Quando dovrei restare sui font statici?
I font statici sono spesso migliori quando ti servono solo regular e bold, quando il file variabile è significativamente più grande o quando le istanze statiche sono ottimizzate meglio per il testo piccolo. La soluzione più semplice è spesso quella giusta.

Fonti e letture ulteriori

  1. MDN Web Docs: Variable fonts guide
  2. web.dev: Introduction to variable fonts on the web
  3. W3C: CSS Fonts Module Level 4
  4. HTTP Archive Web Almanac: Fonts
Informazioni sull'autore
The Wux Webtools Team

Ultimo aggiornamento:

Continua a leggere