A WOFF file (Web Open Font Format) is a font packaged for websites. Inside is an ordinary TrueType or OpenType font, compressed and wrapped so that a browser can download it through CSS @font-face. You usually end up with a WOFF from a web font kit sold by a type foundry, from the files of a website you are working on, or saved from a browser's developer tools. Browsers read it, desktop systems do not install it.
Origin and standards
WOFF was proposed in 2009 by Jonathan Kew of Mozilla with type designers Tal Leming and Erik van Blokland, as a format that foundries could accept for web licensing and every browser could support. Firefox 3.6 read it first in early 2010, and the W3C published WOFF 1.0 as a Recommendation on 13 December 2012. Its successor WOFF 2.0 became a Recommendation in 2018 (the current edition is from 2024). RFC 8081 registered the media types font/woff and font/woff2 in 2017.
How WOFF works
- Container, not a new font technology. WOFF takes the tables of a TTF or OTF font and compresses each one separately with zlib. Decompressed, the font data are the same as before. Outlines can be TrueType or CFF, depending on the original.
- Metadata. An optional XML block can name the vendor, designer and licence, and an optional private block can hold anything the vendor wants. Neither affects rendering.
- WOFF2 uses Brotli compression and transforms the glyph tables before compressing them, so files are noticeably smaller than WOFF 1.0. Every current browser supports WOFF2, so plain WOFF now serves mainly as a fallback for old browsers.
Web fonts are often subset: the vendor or the website keeps only the characters a page needs, for example basic Latin. A WOFF taken from a website may therefore lack accented letters, Greek or Cyrillic even if the full font has them.
Opening WOFF files
To see what a WOFF contains, open it in the free editor FontForge (Windows, macOS, Linux), or reference it in a small HTML page and view it in a browser. Windows 10 and 11 cannot install WOFF as a system font, Office and design programs cannot use it either. For desktop use it has to be converted to OTF or TTF.
Common problems
Windows says the WOFF file is not a valid font
Correct, Windows does not install web fonts. Convert the WOFF to OTF, then right-click it and choose Install.
Web font not loading on a website
Check the browser console. Fonts loaded from another domain need the Access-Control-Allow-Origin header on the font server, otherwise the browser blocks them. Also make sure the path in @font-face is correct and the server sends font/woff or font/woff2.
Converted font is missing characters
The WOFF was a subset. Conversion cannot restore characters that are not in the file. Get the complete font from its vendor.
Converting WOFF
The typical conversions are WOFF to OTF or TTF for installing the font on a computer, WOFF to WOFF2 to make a website lighter, and occasionally to Type 1 (PFB) for old software. Our converter rebuilds the font rather than just unpacking it. Outlines, character widths, kerning and OpenType features normally survive. Hinting and the WOFF metadata block may not, and converting TrueType outlines to OTF or CFF outlines to TTF changes the curve type.
Licensing matters here more than with any other font format. Converting a font does not change its licence. A web font licence usually covers use on specified websites only, and fonts found on someone else's website are licensed to that website, not to you. Installing them on your computer or using them in print needs a desktop licence. Fonts under the SIL Open Font License, which includes most of the Google Fonts library, may be converted and used freely.
WOFF at a glance
| Developer | Mozilla, Tal Leming, Erik van Blokland; standardised by W3C |
|---|---|
| First release | 2009 (proposal), 2010 (Firefox 3.6) |
| Standard | W3C Recommendation 2012, WOFF 2.0 since 2018 |
| Type | compressed wrapper for TrueType/OpenType fonts |
| Compression | zlib per table (WOFF2: Brotli) |
| Typical use | web fonts via CSS @font-face |