Turn a WOFF2 web font into an OTF font file directly in your browser—upload your WOFF2, convert, and download the OTF.
.woff2 web font from your device. Batch upload is supported — convert an entire web-font directory in one pass. Parsing runs locally via a lazy-loaded opentype.js build; nothing leaves your browser session..otf on this page (use the WOFF2 to TTF page if you need a TrueType-flavoured outline instead). The converter decompresses the Brotli-packed WOFF2 container, reverses the transforms on the glyf / loca tables, and writes the embedded outlines back into a plain OpenType (sfnt) wrapper..otf carries the same glyph outlines, kerning, OpenType features (liga, kern, ss01, etc.), and name table that the foundry packed into the WOFF2. Hinting (fpgm, prep, cvt) is preserved when present. There is no subsetting or family-rename step — install the result and the font shows up under its original PostScript and family name..otf. Drop it into Windows C:\Windows\Fonts, macOS Font Book, or any design app's font folder. No sign-up, no watermark, no email gating.WOFF2 is a delivery wrapper, not a desktop format. It is Brotli-compressed OpenType data designed to ride over HTTP — installers on Windows and macOS will not register a .woff2 because the OS font loader expects an uncompressed sfnt table directory. Converting back to .otf unpacks the original OpenType payload and lets your design tools, OS, and print drivers see the font.
inspect → Network so the desktop layout uses the exact same outlines, kerning, and OpenType features the browser renders..woff2. Converting first is the only path that doesn't involve a font-editor like FontForge.GSUB/GPOS tables to any OpenType-aware tool.| Property | WOFF2 | OTF |
|---|---|---|
| Standardized by | W3C Recommendation (first published 2018; latest revision August 2024) | Microsoft + Adobe, 1996; ISO/IEC 14496-22 (Open Font Format) |
| Container | Brotli-compressed sfnt wrapper plus optional XML metadata block |
Plain sfnt table directory (CFF or glyf outlines) |
| Compression | Brotli on the table stream, plus reversible transforms on glyf/loca |
None — outlines stored verbatim |
| Typical file size | ~50–70% smaller than the source OTF (Brotli + transforms) | The native uncompressed size |
| Installable on Windows / macOS | No — Font Book and the Windows font installer reject .woff2 |
Yes — double-click and install |
Usable in CSS @font-face |
Yes (Chrome 36+, Firefox 39+, Safari 12+, Edge 14+) | Yes, but ~50% heavier over the wire |
Variable fonts (fvar) |
Yes | Yes |
Color/chromatic fonts (COLR/CPAL, SVG) |
Yes | Yes |
Font Collections (.ttc/.otc) |
Yes (WOFF2 supports collections) | OTF itself is single-face; .otc is the collection variant |
| Step | What the converter does | What you keep |
|---|---|---|
| Parse WOFF2 header | Reads the signature, flavor, and table directory entries |
Identifies whether the outlines are CFF (OTTO) or TrueType (true/0x00010000) |
| Brotli decompress | Decompresses the compressed table stream into individual sfnt tables |
Original byte content of cmap, name, hmtx, OS/2, etc. |
Reverse glyf/loca transform |
Rebuilds the TrueType glyf and loca tables from WOFF2's transformed encoding |
Bezier outlines, composite glyphs, instructions/hinting |
Repackage as sfnt |
Writes a fresh OpenType file with the original flavor bytes |
A valid .otf that any OS font loader accepts |
A correctly converted file will not always be a bitwise copy of the original OTF the foundry compiled (the W3C spec explicitly allows decoders to repack tables differently), but the rendered output — every glyph, every kerning pair, every OpenType feature — is identical.
Yes for all practical purposes. WOFF2 is a lossless wrapper — the Brotli step compresses bytes, and the glyf/loca transform is fully reversible. The reconstructed OTF carries the same outlines, kerning, OpenType layout features (liga, dlig, kern, stylistic sets), and name table. The W3C spec notes the binary may not be a bitwise match to whatever OTF the foundry originally compiled, but the rendered result is the same.
It depends on the foundry's license. Most commercial desktop + web licenses cover the same outlines in both forms, so converting your own WOFF2 back to OTF for desktop use is fine. Web-only licenses (cheaper, ~$10–40 per family) typically prohibit installing the font on a workstation — converting and installing breaches that EULA. Open-source families under the SIL Open Font License (Google Fonts, most Fontsource bundles) allow conversion and redistribution as long as you don't sell the font on its own.
WOFF2 strips Brotli compression on the way in, and the glyf transform packs coordinate data more efficiently than raw TrueType. A typical Latin-only sans-serif might be 30–50 KB as WOFF2 and 80–140 KB as OTF — roughly 2-3x larger. The OTF is the canonical, uncompressed form; the inflation isn't bloat, it's just the bytes a font file actually contains before the WOFF2 wrapper.
Yes. On Windows 10/11, right-click the .otf and choose "Install for all users" (writes to C:\Windows\Fonts) or "Install" (per-user). On macOS, double-click to open Font Book and click "Install Font" — the file lands in ~/Library/Fonts. The font appears in Word, PowerPoint, Photoshop, Illustrator, Affinity, Figma desktop, and any other app that reads OS-registered fonts.
Yes. The GSUB and GPOS tables (which hold ligatures, contextual alternates, stylistic sets, kerning, mark positioning, and language-specific shaping) are stored as whole tables inside the WOFF2 and copied unchanged into the OTF. If the original WOFF2 ships with liga, dlig, ss01–ss20, tnum, etc., the OTF has them too.
OTF preserves the original outline format the font was compiled with — if it was originally CFF/PostScript outlines, you get OTF with CFF (OTTO flavor); if it was originally TrueType outlines wrapped in an OpenType container, you get an OTF holding glyf data. Converting to TTF forces TrueType outline format, which can require converting CFF curves to quadratic Béziers — a one-way, mildly lossy step. For desktop use, pick OTF unless your target app specifically prefers TTF (some older Windows apps and embedded systems do).
WOFF 1.0 uses zlib/Flate compression and became a W3C Recommendation on 13 December 2012 (first submitted as a Working Draft in 2010). WOFF2 swaps in Brotli and adds reversible transforms on glyf and loca, producing typically 20–30% smaller files than WOFF for the same source font (median ~24% for TTF-flavored fonts). Both wrap the same OpenType payload. Convert a .woff if your decoder only handles WOFF 1.0, otherwise WOFF2 is the modern default.
Yes. WOFF2 supports variable-font tables (fvar, STAT, gvar, HVAR, MVAR, cvar) and chromatic-font tables (COLR/CPAL, SVG, sbix, CBDT/CBLC). The converter copies these tables through to the resulting OTF — your variable axes and color layers survive. macOS Font Book and Windows Font Settings both recognize variable OTFs since macOS Catalina (10.15) and Windows 10 1903.
No. Parsing and re-packaging happen entirely in your browser via a lazy-loaded opentype.js build. The WOFF2 never leaves your machine, no account is required, there are no watermarks, and no Pro tier gates the conversion or output file size.