WOFF2
Web Open Font Format 2.0 — de gouden standaard voor webfonts, met Brotli-compressie die de kleinste bestandsgroottes biedt.
Wat is WOFF2?
WOFF2 is ontwikkeld door Google en werd in maart 2018 een W3C-aanbeveling. Het bouwt voort op het originele WOFF-concept, maar vervangt zlib-compressie door Brotli — een compressie-algoritme dat ook door Google is ontwikkeld — dat aanzienlijk betere compressieverhoudingen bereikt.
Maar WOFF2 is niet slechts "WOFF met betere compressie". Het introduceert een voorverwerkingstransformatie die fontgegevens herstructureert vóór compressie, waardoor ze aanzienlijk beter comprimeerbaar worden. Voor TrueType-contouren betekent dit het toepassen van voorspellende codering op glyph-coördinaten — elk punt wordt gecodeerd als een delta ten opzichte van een voorspelde waarde in plaats van een absolute coördinaat. Het resultaat is een veel redundanter bytestroom die Brotli agressief kan comprimeren.
Deze tweestaps-aanpak — domeinspecifieke voorverwerking gevolgd door algemene compressie — is waarom WOFF2 consistent de kleinste fontbestanden produceert van alle formaten.
Hoe Het Werkt
WOFF2 past een tweeledige compressiepipeline toe op de bronfontsgegevens:
- Fase 1: Voorverwerkingstransformatie — fontspecifieke transformaties herstructureren de gegevens om de comprimeerbaarheid te maximaliseren. Voor TrueType glyph-contouren gebruikt dit voorspellende codering van coördinaten — elk punt wordt gecodeerd als het verschil ten opzichte van een voorspelde positie, wat veel kleinere getallen oplevert. Vergelijkbare transformaties worden toegepast op andere fonttabellen.
- Fase 2: Brotli-compressie — de voorverwerkte gegevens worden vervolgens gecomprimeerd met Brotli, dat LZ77-glijdende-venstercompressie combineert met Huffman-codering en een ingebouwd statisch woordenboek. Brotli bereikt 20-30% betere compressie dan zlib op typische fontgegevens.
Aan de browserkant wordt het proces omgekeerd: Brotli-decompressie gevolgd door inverse transformaties om de originele fonttabellen te reconstrueren. Ondanks de extra stap is WOFF2-decompressie eigenlijk sneller dan WOFF1 — Brotli is ontworpen voor snelle decodering, en het kleinere bestand wordt sneller overgedragen via het netwerk.
Typische font stack met WOFF2@font-face {
font-family: 'MyIcons';
src: url('icons.woff2') format('woff2');
font-display: swap;
}
.icon { font-family: 'MyIcons'; }
.icon-home::before { content: '\E001'; }
Merk op dat we slechts één src vermelden — alleen WOFF2. Met 97%+ browserafdekking hebben veel moderne projecten geen fallbackformaat meer nodig. De richtlijn font-display: swap vertelt de browser om onmiddellijk tekst te tonen met een fallbackfont terwijl het icoonfont laadt, waardoor onzichtbare tekst wordt voorkomen.
Voor- en Nadelen
- Beste compressieverhouding van alle fontformaten
- Snelste decompressie (Brotli is geoptimaliseerd voor decoderingssnelheid)
- W3C-aanbeveling (officiële webstandaard sinds 2018)
- Ondersteund door 97%+ van de wereldwijde browsers
- De gevestigde industriestandaard voor webfonts
- Niet ondersteund in enige versie van Internet Explorer
- Vereist conversietools (kan niet handmatig worden bewerkt zoals SVG Font)
- Niet geschikt voor fontinstallatie op besturingssysteemniveau (gebruik TTF daarvoor)
Browserondersteuning
WOFF2 geniet van brede ondersteuning in alle moderne browsers. De enige significante leemte is Internet Explorer, dat in juni 2022 officieel door Microsoft werd stopgezet.
| Browser | Minimale versie |
|---|---|
| Chrome | 36+ |
| Firefox | 39+ |
| Safari | 12+ |
| Edge | 14+ |
| Opera | 23+ |
| Internet Explorer | Niet ondersteund |
De gecombineerde wereldwijde afdekking ligt op ongeveer 97%. De resterende ~3% bestaat bijna uitsluitend uit verouderde IE-installaties en zeer oude mobiele browsers.
Bestandsgroottvergelijking
Ter illustratie van het compressievoordeel van WOFF2, hier zijn typische bestandsgroottes voor een icoonfont met 200 glyphs:
| Formaat | Typische grootte | Reductie vs TTF |
|---|---|---|
| .ttf | ~80 KB | Baseline |
| .woff | ~48 KB | ~40% kleiner |
| .woff2 | ~34 KB | ~58% kleiner |
De besparingen stapelen zich op bij grotere icoonsets. Een font met 500 glyphs kan 200 KB zijn als TTF, 120 KB als WOFF en slechts 82 KB als WOFF2. Over duizenden paginaladingen vertalen deze kilobytes zich direct in snellere weergavetijden en lagere bandbreedtekosten.
Wanneer WOFF2 Gebruiken
Altijd. WOFF2 moet het standaardformaat zijn voor elke webgebaseerde icoonfontdistributie. Het levert de kleinste bestanden, de snelste decompressie en bijna universele browserondersteuning.
Het enige scenario waarin u WOFF2 niet zou gebruiken, is als u Internet Explorer als doelplatform heeft — in dat geval combineert u het met WOFF als fallback:
@font-face {
font-family: 'MyIcons';
src: url('icons.woff2') format('woff2'),
url('icons.woff') format('woff');
font-display: swap;
}
Moderne browsers laden het WOFF2-bestand; IE 11 valt terug op WOFF. Iedereen krijgt het font, iedereen krijgt het gecomprimeerd.
ttf2woff2-bibliotheek met Brotli-compressie voor optimale resultaten. U vindt het gegenereerde .woff2-bestand naast CSS en demopagina's in elke export.
font-display: swap in uw @font-face-declaratie. Hierdoor kan de browser onmiddellijk tekst tonen met een fallbackfont terwijl het icoonfont laadt, waardoor de "flash of invisible text" (FOIT) wordt voorkomen die pagina's er niet-responsief uit kan laten zien.