Convert fonts between TTF, OTF, WOFF, and WOFF2 formats. Preview fonts with custom text, view font details, and generate CSS @font-face code.
Upload a TTF, OTF, WOFF, or WOFF2 font and inspect it: the tool parses the file with opentype.js to read its family name, style, weight, glyph count, and units-per-em, loads it as a live FontFace so you can preview real text at any size, and generates a ready-to-paste @font-face CSS block. It also handles straightforward format passes, TTF and OTF share the same underlying SFNT structure, so converting between those two is supported directly. Conversions that require Brotli or zlib (de)compression are intentionally limited, see the FAQ for exactly what works.
Initializing in your browser…
Convert images between PNG, JPG, WebP, AVIF, BMP formats. Features quality control, transparency support, and batch conversion for efficient workflow.
Convert between Unix/Epoch timestamps and human-readable dates. Supports seconds and milliseconds with timezone information
Convert audio files between WAV, MP3, OGG, AAC, M4A, FLAC formats online. Adjust bitrate and quality settings. Free browser-based conversion with no file uploads to servers.
A client gave you a desktop TTF but your site needs WOFF2 to load fast and avoid a flash of unstyled text.
Input
BrandSans-Regular.ttf (412 KB)
Output
BrandSans-Regular.woff2 (148 KB), ~64% smaller, web-ready
WOFF2 wraps the same glyph outlines in Brotli compression designed for fonts, typically cutting transfer size by half or more versus raw TTF, directly improving render time. Conversion runs in your browser, so an unreleased brand font is never uploaded to a third party.
Upload a TTF, OTF, WOFF, or WOFF2 font and inspect it: the tool parses the file with opentype.js to read its family name, style, weight, glyph count, and units-per-em, loads it as a live FontFace so you can preview real text at any size, and generates a ready-to-paste @font-face CSS block. It also handles straightforward format passes, TTF and OTF share the same underlying SFNT structure, so converting between those two is supported directly. Conversions that require Brotli or zlib (de)compression are intentionally limited, see the FAQ for exactly what works.
It helps to be precise about what 'font conversion' means here, because most of the value is in inspection and CSS generation rather than re-encoding bytes. When you upload a font, it is parsed in your browser with opentype.js to extract the metadata shown in the Font Details panel: family, subfamily/style, OS/2 weight class, total glyph count, units-per-em, and file size. The font is also registered as a temporary FontFace named PreviewFont, so the preview pane renders your actual outlines, type custom text or pick one of the built-in pangrams and drag the size slider to judge the typeface at real rendering sizes.
The export side is honest about its limits. TTF and OTF use the same SFNT container, so this tool can hand you the font in either of those two formats directly. Producing a true WOFF or WOFF2 requires compression (zlib for WOFF, Brotli for WOFF2) and producing TTF/OTF from a WOFF or WOFF2 requires the matching decompression, and those compression libraries are not bundled here, so those paths report that they are unsupported rather than silently emitting a broken file. EOT (the legacy Internet Explorer format) is not supported as input or output. For real WOFF2 compression in a build pipeline, use a dedicated tool such as the wawoff2 library, fonttools, or your bundler's font plugin. Where this tool shines is when you already have the right format and need to confirm a font's metrics, preview it quickly, or grab a correct @font-face rule with font-display: swap and the proper format() hint.
It reliably interchanges TTF and OTF, since they share the same underlying structure, and it can re-download a WOFF or WOFF2 you already have. Building a WOFF/WOFF2 from a TTF/OTF (or the reverse) needs Brotli or zlib (de)compression, which is not bundled here, so those paths are reported as unsupported rather than producing a broken file.
No. EOT is a legacy Internet Explorer format and is not supported as input or output. Modern browsers use WOFF2 with WOFF as a fallback.
WOFF2 is the best choice, it offers the smallest file size and is supported by all modern browsers. Include WOFF as a fallback for older browsers. To compress to WOFF2 you will need a dedicated build-time tool such as wawoff2 or fonttools.
Inspecting a font's metrics, previewing it with your own text, and copying a correct @font-face CSS block. It runs entirely in your browser.
Conversions run on your device in JavaScript. The values you enter are never sent over the network.