TTF to WOFF2 Converter
Convert TrueType (.ttf) fonts to optimized WOFF2 web fonts.
TTF to WOFF2 Converter converts font files between TTF, OTF, WOFF, WOFF2, and Base64 CSS definitions locally in your web browser. Font data processing runs entirely on your device without transmitting files over the network.
Runs in your browser- Privacy
- Runs entirely in your browser — nothing is uploaded
- Cost
- Free, unlimited, no sign-up
WOFF2 is the format to serve
A .ttf on a web server is a font with no compression at all beyond whatever the transfer encoding adds. WOFF 2.0 exists to fix that. It applies a reversible transform to the glyf, loca and hmtx tables so their contents compress better, then runs Brotli over the whole font. The result carries the same tables the source did, decodes back to them exactly, and is markedly smaller than either the raw sfnt or the same font in WOFF 1.0.
Nothing about the typeface changes. Outlines, cmap, hinting, GSUB and GPOS features and every variable-font axis are all carried through unaltered. Packaging a font as WOFF2 is a delivery decision, not a design one.
Writing the @font-face rule
@font-face {
font-family: 'Example Sans';
src: url('/fonts/example-sans.woff2') format('woff2'),
url('/fonts/example-sans.woff') format('woff');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+2000-206F;
}Order matters: a browser takes the first src entry whose format() it understands, so WOFF2 goes first. font-display: swap decides what the user sees while the file is in flight. unicode-range lets you split a large family into several files and have the browser fetch only the ranges a page actually renders, which is the single biggest win available on a multilingual site.
Do you still need a WOFF fallback?
Every current browser engine reads WOFF2. WOFF 1.0 is only reached by old Internet Explorer and Edge builds and by long-unsupported Safari and Android stacks. If your analytics show none of those, a single WOFF2 source is enough and the second line is dead weight. If you do keep a fallback, TTF to WOFF produces it, and the raw .ttf is not the right fallback: it is larger than both.
Subset before you compress
Compression cannot remove glyphs you never use, and for most Latin sites the majority of a font file is glyphs the site will never render. Subsetting first and packaging second routinely beats packaging alone by a wide margin, and it is the step people skip. The same goes for layout tables: a site that uses no small caps and no old-style figures is shipping GSUB rules for both.
| Format | Outline data | Compression | Where it belongs |
|---|---|---|---|
.ttf TrueType | Quadratic curves in the glyf and loca tables | None | Desktop installation, Android build pipelines, tools that only read glyf |
.otf OpenType with PostScript outlines | Cubic curves in a CFF or CFF2 table | None | Desktop installation, print and design applications |
.woff WOFF 1.0 | Whichever of the two the wrapped font already used | zlib, applied to each table separately | A fallback source for browsers too old for WOFF2 |
.woff2 WOFF 2.0 | Whichever of the two the wrapped font already used | Brotli over the whole font, after a reversible transform of glyf, loca and hmtx | The format to actually serve on the web |
.eot Embedded OpenType | Either, wrapped in a Microsoft-specific container | Optional MicroType Express | Internet Explorer 8 and earlier. A W3C Member Submission that never became a standard |
.ttc / .otc collection | Either, with tables shared between several faces | None on its own, though WOFF2 can wrap a collection | Shipping a whole family in one file, common for CJK fonts |
Related font conversions
- TTF to WOFF for the older fallback source.
- WOFF2 to TTF to unwrap a web font again.
- OTF to TTF when the source family ships PostScript outlines.
- Font to Base64 for the inline alternative, and its trade-offs.
- Font availability checker to see which faces visitors already have.
- Format hubs: WOFF2, TTF, WOFF and OTF.
Frequently asked questions
Is my font file uploaded anywhere?
What is the difference between OTF and TTF?
Is converting a font lossless?
Am I allowed to convert a commercial font?
Can I convert an EOT or TTC file here?
How to use the ttf to woff2 converter
- 1Select your font file — the file stays on your device and is never uploaded.
- 2Press Run, then download the result when it is ready.
Sources & specifications
Embed this tool
Put the working ttf to woff2 converter on your own site. It runs in your visitors' browsers exactly as it does here — free, no account, nothing uploaded.
Share this tool
Related tools
Last updated
More developer tools