Skip to content
Convertto

A Transfonter alternative for web font conversion

People searching this way want to turn a desktop font file into web font formats they can serve with @font-face.

Convertto converts font files between TTF, OTF, WOFF and WOFF2 inside your browser tab, and can also emit a font as a Base64 data URI ready to paste into CSS. The font binary is parsed and rewritten on your device, so licensed font files are never uploaded to anyone.

Formats
TTF, OTF, WOFF, WOFF2, and Base64 CSS
Where it runs
In the browser tab, in a Web Worker
Font files uploaded
None
Cost
Free, no sign-up

What you are looking for, and the tool that does it

The jobConvertto toolWhat it does
TTF to WOFF2TTF to WOFF2 ConverterConverts a TrueType font to the WOFF2 web font format
TTF to WOFFTTF to WOFF ConverterConverts a TrueType font to WOFF for older browser support
OTF to TTFOTF to TTF ConverterConverts an OpenType font to TrueType
WOFF2 back to TTFWOFF2 to TTF ConverterUnpacks a WOFF2 web font back to TrueType
WOFF back to TTFWOFF to TTF ConverterUnpacks a WOFF web font back to TrueType
Inline a font in CSSFont to Base64 & CSS GeneratorEmits the font as a Base64 data URI inside a @font-face rule
Check which fonts a device hasInstalled Font CheckerTests which system fonts are actually available before you rely on them in a stack

Which format to serve

For anything shipping today, WOFF2 alone is enough. It is supported by every current browser, and it compresses better than WOFF or a raw TTF because it uses Brotli tuned for font tables. WOFF is only worth adding if you still support browsers old enough to miss WOFF2, and serving a bare TTF or OTF to the web mostly wastes bandwidth.

FormatWhat it isServe it on the web?
WOFF2Brotli-compressed web font containerYes, this is the default choice
WOFFOlder zlib-compressed web font containerOnly as a fallback for very old browsers
TTFTrueType desktop fontNot usually. It is the source you convert from
OTFOpenType desktop font, often with CFF outlinesNot usually. Convert to WOFF2 first
Base64 in CSSThe font bytes inlined as a data URIOnly for tiny icon fonts or single-file deliverables
@font-face {
  font-family: 'Example';
  src: url('/fonts/example.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

font-display: swap is the line people forget. Without it the browser may hold text invisible while the font loads, which is a worse experience than a brief flash of the fallback.

Why converting locally matters for fonts specifically

A font file is usually licensed. Commercial licences frequently restrict who may hold a copy of the binary and where it may be stored, and a licence that permits web embedding does not automatically permit handing the file to a third party for processing. Converting on your own device sidesteps the question, because no third party ever receives the file. Convertto's font tools read the binary with the File API and write the result in a worker; nothing is transmitted.

Frequently asked questions

Do I still need WOFF as well as WOFF2?

Only if you support browsers that predate WOFF2. Every current browser reads WOFF2, so most sites ship that format alone.

Is my font file uploaded?

No. The font is read and rewritten inside the browser tab, which matters because font binaries are usually licensed.

Can I convert an OTF straight to WOFF2?

Yes. The font converters accept OTF as an input format alongside TTF, WOFF and WOFF2.

Should I inline the font as Base64?

Rarely. A data URI cannot be cached separately from the stylesheet and grows by about a third in encoding. It is worth it for a very small icon font or when you must ship a single self-contained file.

Does converting change how the font looks?

No. WOFF and WOFF2 are containers around the same glyph outlines and tables, so the rendering is unchanged. Converting between outline types, such as CFF to TrueType quadratics, is the one case where hinting behaviour can differ.

Open a tool

Last updated

Browse developer tools