WOFF
Web Open Font Format — il primo formato di font progettato specificamente per il web.
Che cos'è WOFF?
WOFF 1.0 è stato sviluppato congiuntamente da Mozilla, Opera e Microsoft come il primo formato di font creato da zero per il web. È diventato una Raccomandazione W3C nel dicembre 2012, segnando una pietra miliare nella tipografia web.
Nella sua essenza, WOFF è un wrapper attorno ai dati di font TrueType o OpenType esistenti. Applica la compressione zlib per ridurre le dimensioni del file e include campi di metadati opzionali per la licenza e l'attribuzione. Prima di WOFF, gli sviluppatori web dovevano distribuire file TTF o OTF grezzi — grandi, non compressi e privi di qualsiasi modo standard per incorporare le informazioni sulla licenza.
L'innovazione principale consisteva nel creare un contenitore di font web ad hoc che risolvesse tre problemi contemporaneamente: dimensioni dei file ridotte grazie alla compressione, un blocco di metadati standard per le licenze dei font e un formato che i browser potessero validare e isolare facilmente per motivi di sicurezza.
Come Funziona
Il contenitore WOFF racchiude le tabelle dei font esistenti (da file TTF o OTF) con compressione zlib per tabella. Ogni tabella del font originale — contorni dei glifi, dati di crenatura, record di denominazione — viene compressa in modo indipendente, consentendo al browser di decomprimere solo le tabelle di cui ha bisogno.
L'intestazione WOFF inizia con una firma di quattro byte (wOFF), seguita dal flavor del font (che indica se i dati racchiusi sono TrueType o CFF), la dimensione totale compressa e un puntatore al blocco di metadati opzionale. Il browser legge questa intestazione, decomprime le singole tabelle riportandole alla loro forma originale e passa i dati del font ricostruiti al motore di rendering del testo.
Dal punto di vista del motore di rendering, un file WOFF decompresso è identico al TTF o OTF originale — la compressione è completamente trasparente.
Utilizzo tipico di @font-face@font-face {
font-family: 'MyIcons';
src: url('icons.woff2') format('woff2'),
url('icons.woff') format('woff');
}
Il browser tenta ogni voce src in ordine. I browser moderni caricheranno il file WOFF2 (più piccolo, più veloce); i browser più vecchi che non comprendono WOFF2 ricorreranno al file WOFF. Questo approccio a cascata garantisce prestazioni ottimali con la massima compatibilità.
Vantaggi e Svantaggi
- Buona compressione — circa il 40% più piccolo del TTF grezzo
- Ampiamente supportato, incluso IE 9+
- Raccomandazione W3C (standard web ufficiale)
- Include supporto per metadati e licenze
- Conversione semplice da sorgenti TTF o OTF
- Superato da WOFF2, che offre una migliore compressione
- ~30% più grande del file WOFF2 equivalente
- La compressione zlib è meno efficiente di Brotli
Supporto Browser
WOFF è supportato da tutti i principali browser sin dai primi anni 2010, rendendolo il formato di fallback più sicuro per i font web. Copre una gamma ancora più ampia di browser rispetto a WOFF2, poiché include il supporto per le versioni più vecchie di Internet Explorer.
| Browser | Versione minima |
|---|---|
| Chrome | 6+ |
| Firefox | 3.5+ |
| Safari | 5.1+ |
| Internet Explorer | 9+ |
| Edge | Tutte le versioni |
| Opera | 11.1+ |
Con una copertura globale dei browser superiore al 98%, WOFF è compreso da praticamente ogni browser ancora in uso attivo. L'unica lacuna significativa è IE 6-8, che richiede invece EOT.
WOFF vs WOFF2
WOFF2 è il successore di WOFF e, nella maggior parte dei casi pratici, rappresenta un miglioramento netto. Ecco un confronto:
| Aspetto | WOFF | WOFF2 |
|---|---|---|
| Compressione | zlib (deflate) | Brotli |
| Rapporto di compressione | ~40% più piccolo del TTF | ~30% più piccolo di WOFF |
| Preelaborazione | Nessuna | Trasformazione dati glifo |
| Velocità di decompressione | Veloce | Più veloce |
| Supporto IE | IE 9+ | Solo Edge (no IE) |
| Standard W3C | 2012 | 2018 |
WOFF2 offre circa il 30% di compressione in più rispetto a WOFF grazie a Brotli e a una fase di preelaborazione specializzata che rende i dati dei glifi più comprimibili. È anche più veloce da decomprimere. Il supporto browser moderno per WOFF2 è altrettanto ampio — l'unica lacuna è Internet Explorer 9-11, che supporta WOFF ma non WOFF2.
Per la maggior parte dei progetti che puntano ai browser dal 2024 in poi, solo WOFF2 è sufficiente. L'unico vantaggio rimanente di WOFF è la copertura di IE 9-11.
Quando Usare WOFF
Nonostante sia stato superato da WOFF2, ci sono ancora validi motivi per includere WOFF nel proprio font stack:
- Come fallback insieme a WOFF2 — elencare WOFF2 per primo nella dichiarazione
@font-facee WOFF per secondo, offrendo ai browser moderni il file più piccolo garantendo al tempo stesso che i browser più vecchi ricevano comunque il font. - Quando è richiesto il supporto a IE 11 — IE 11 supporta WOFF ma non WOFF2, quindi WOFF è il miglior formato compresso disponibile per quel browser.
- In ambienti senza Brotli — alcuni strumenti di build, proxy o CDN più vecchi potrebbero non gestire correttamente la compressione Brotli di WOFF2; la compressione zlib di WOFF è universalmente supportata.
Se nessuna di queste condizioni si applica al progetto, è possibile ignorare WOFF in modo sicuro e distribuire solo WOFF2.