Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
WOFF
A font packed for the web. Superseded by WOFF2 but still needed for old browsers.
WOFF
WOFF is a binary format, meaningful only to a program that knows it. It is used for the web.
The extension is .woff, and the full name is Web Open Font Format. Both matter less than what the file can hold, which is what the rest of this page is about.
W3C published it in 2009. The specification is WOFF 1.0.
Age is worth knowing here for one practical reason: the older a format is, the more programs have had time to learn it.
It is published in full, so anyone can implement it from the document rather than by inspection, which is why it turns up in so many programs and why files written twenty years ago still open. A published specification is not the same thing as a royalty-free one: where a format wraps a codec, the patent licensing is a separate question the standard does not settle.
It still opens everywhere and is still written by older tools, but nothing new is being built around it. Convert what you mean to keep, and do not choose it for something starting today.
WOFF stores its content exactly. Saving it again changes nothing, so it can be opened, edited and re-saved as often as you like without accumulating damage — which is what makes it a working format rather than a delivery one.
FontForge and fonttools read it, and so do most programs of the same kind.
If a file will not open, the format is rarely the problem — it is more often that the program predates it. Converting to something older is the reliable way past that, and it is what the rest of this site is for.
Every current browser reads it.
That makes it a safe thing to put on a page or attach to a message without wondering what the other end has installed.
WOFF is meant to be handed over rather than worked in. Editing one is possible and rarely pleasant; the sane approach is to change the source and export again.
Before 2009 a web page had a choice between the handful of fonts installed on the visitor’s computer and a Microsoft-only format nobody else implemented. WOFF ended that: an open W3C specification, wrapping an ordinary TrueType or OpenType font with compression and a metadata block, and — crucially — one that every browser vendor agreed to support.
What it changed was not technical so much as political. Font foundries had resisted web embedding because it meant putting the raw font file on a public server. WOFF did not prevent that either, but it was a format made for the web with a place to record licensing information, and it was enough for the industry to start selling web licences. Nearly every typeface on the web today exists there because of that settlement.
Inside a WOFF is the same set of font tables that were inside the TTF or OTF it was made from — same outlines, same kerning, same OpenType features. The wrapper adds zlib compression and a small metadata section, and nothing else.
So converting a font to WOFF and back is lossless, and a WOFF is never higher or lower quality than its source. It also means no operating system installs one: there is nothing in it that the original font did not already have, and desktop systems want the original.
The compression, and only the compression. WOFF2 replaced zlib with Brotli and added a preprocessing step that rearranges font tables into a form that compresses better, which together take roughly another thirty per cent off the file.
Nothing else differs. The same font, the same features, the same rendering — a smaller download. That is why the transition was quick and why there is no design reason to prefer the older format for anything.
No. WOFF2 has been supported by every browser that receives updates for years, including Safari and every mobile browser. Serving WOFF as a fallback means shipping a second copy of every typeface for a population that has effectively emptied.
The exception, stated precisely so it is not overapplied: an environment locked to a browser released before about 2016 — some kiosks, some embedded systems, some corporate installations frozen by policy. If that is genuinely your audience, serve both. If you are not certain that it is, you are maintaining files for nobody.
If it is going on a website, convert it to WOFF2 and serve that. The conversion is lossless in both directions since both are wrappers around the same tables, and the result is a third smaller for no work.
If you want the typeface on your computer, convert to TTF or OTF and install that instead — a WOFF cannot be installed. And if the file came off somebody else’s website, the licence question comes before either: a font recovered from a page is not a font you may use, and web licences in particular are usually tied to a specific domain and traffic level.
WOFF included an optional XML block for the foundry, the licence, the vendor and a description — the mechanism by which a font found on a server could state its own terms.
In practice almost nothing writes it and nothing reads it. Font services strip it, generators omit it, browsers ignore it. It is a reasonable idea that lost to the same reality as Embedded OpenType’s domain locking: licensing turned out to be a contract problem rather than a file-format problem, and formats that tried to solve it in the bytes were quietly worked around.
WOFF wraps a font in the same compression a ZIP file uses. WOFF2 wraps it in Brotli and adds a transform that understands font tables specifically, which together take roughly a further thirty per cent off — a meaningful figure on a resource that blocks text from appearing.
Because the two formats do the same job at different prices, there is almost never a reason to serve both. Every browser that a site would plausibly support reads WOFF2, and a page that lists WOFF as a fallback is usually carrying it for browsers that stopped being used years ago. Checking that assumption is worth a minute, because the fallback costs a request whenever it is taken.
| Extension | .woff |
|---|---|
| Media type | font/woff |
| Published by | W3C |
| First published | 2009 |
| Specification | WOFF 1.0 |
Only the compression. WOFF uses zlib; WOFF2 uses Brotli with a preprocessing step tuned for font data and comes out around 30 per cent smaller. Same font, same features, same rendering — just a smaller download.
In almost every case, no. Every browser that still receives updates reads WOFF2, so serving WOFF as well means shipping a second copy of each typeface for essentially nobody. The exception is an environment deliberately frozen on a browser from before about 2016.
No — operating systems do not accept it. It is a wrapper for delivering a font over the web. Convert it to TTF or OTF and install that; nothing is lost, because the wrapper contains exactly those tables.
No. Both are wrappers around the same font tables, so the conversion is lossless in both directions. The outlines, kerning and OpenType features are identical — only the compression differs.
Technically it will work; legally it usually will not. Web font licences are typically tied to a specific domain and traffic level, and downloading the file transfers nothing. Fonts under the SIL Open Font License are the exception and may be self-hosted freely.