Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Transfonter?
Transfonter is a browser-based webfont converter and @font-face generator. You upload a font file, choose output formats and settings, convert it, and download a ZIP containing the converted fonts, CSS styles and an optional demo page. Its stated purpose is to let sites use their own fonts rather than relying on the fonts visitors happen to have installed.
What you can do with it
- Convert between formats. The uploader accepts TTF, OTF, WOFF, WOFF2, SVG and several other font formats, and the output options include TTF, EOT, WOFF, WOFF2 and SVG.
- Generate the CSS. The download includes
@font-facerules, so you don't hand-write format lists and source URLs. - Tune the output. Settings cover vertical metric fixes, a local-font rule, Base64 encoding, hinting (keep, autohint or strip), Unicode-range subsets, and
font-displayvalues such as swap, block, fallback and optional. - Preview it. A demo page in one of several languages (English, French, German and others) shows the font in use before you commit it to a site.
Who it suits
It fits a designer or front-end developer who has a licensed font file and needs a working webfont setup quickly, especially when the source is a desktop format like TTF or OTF. A typical use: take a brand typeface, produce WOFF2 plus a WOFF fallback, set font-display: swap, and paste the generated CSS into a stylesheet.
Trade-offs to weigh
The page lists a 5 MB per-file limit and up to 20 files per conversion, so very large families may need splitting into batches. Conversion is a one-off step: when the font is updated, you convert again and replace the files and CSS. The tool handles the technical packaging, but licensing for web embedding is your responsibility, and subsetting to Unicode ranges reduces file size at the cost of extra CSS rules to maintain.
As a next step, convert one weight first, check the demo page and the generated CSS, then decide whether to batch the rest of the family.
How do I convert a TTF or OTF font into WOFF and WOFF2 files for my website?
Use Transfonter to convert a TTF or OTF file into WOFF and WOFF2: upload the font, choose WOFF and WOFF2 as output formats, convert, then download the ZIP archive containing the converted files, CSS and a demo page. Transfonter accepts TTF and OTF inputs (up to 5 MB per file, up to 20 files at once) and its page describes exactly this @font-face workflow.
Practical steps
- Upload the font. Drag your TTF/OTF onto the upload area or browse for it. If you have several weights (Regular, Bold, Italic), upload them together so the family stays consistent.
- Select output formats. Enable WOFF and WOFF2. WOFF2 is the smaller, modern format; WOFF is the broader fallback. You can skip older formats like EOT and SVG unless you must support very old browsers.
- Check the conversion settings. Consider "Fix vertical metrics" if line spacing looks off, and "Base64 encode" only if you want to embed fonts directly in CSS (it bloats the stylesheet). Choose a font-display value such as
swapif you want text visible immediately while the font loads. - Convert and download. Click Convert, then unzip the archive. It contains the font files, a CSS file with @font-face rules and a demo page.
- Add to your site. Upload the WOFF/WOFF2 files to your server and include the generated CSS, adjusting the
srcURLs to your font paths.
What the CSS looks like
@font-face {
font-family: "MyFont";
src: url("myfont.woff2") format("woff2"),
url("myfont.woff") format("woff");
font-weight: 400;
font-style: normal;
font-display: swap;
}
List WOFF2 first so browsers that support it use the smaller file.
When to convert versus use the original
- Convert when you want smaller downloads and consistent rendering across browsers; TTF/OTF files are larger and not ideal for web delivery.
- Keep a TTF/OTF copy for desktop design software, where those formats are standard.
- Check licensing before hosting a font on your site; conversion doesn't change the font's license terms.
If you'd rather skip conversion entirely, services such as Google Fonts host ready-made WOFF2 files for open-source families, and [[site:font squirrel.com|Font Squirrel]] offers a similar generator with extra subsetting controls. For a quick, single-purpose conversion with a ready CSS file, Transfonter is the direct route.
What should I put in the @font-face CSS rule that Transfonter generates so the font loads correctly on my site?
Put the generated @font-face rule in your site's main CSS file, not inside an HTML page, and make sure the src paths point to where you actually upload the font files. Transfonter's output is designed to be used as-is: its page describes generating @font-face CSS and demo files alongside converted WOFF/WOFF2 fonts.
What the rule needs to contain
font-family: the name you'll reference later infont-family:declarations. Keep the name Transfonter generates, or rename it consistently everywhere.src: one entry per format, ordered so modern formats come first. A typical order is WOFF2, then WOFF, then older formats like TTF/EOT if you enabled them. Browsers pick the first format they support.font-weightandfont-style: match these to the actual font file. If you're loading a bold file, declarefont-weight: 700;so the browser doesn't fake bold. Repeat the rule once per weight/style you upload.font-display: Transfonter lets you choose this setting.swapshows fallback text immediately and swaps in the font when ready, which suits body text;blockhides text briefly, which suits headlines where a flash of fallback is worse than a short delay.
Paths are the usual failure point
The src: url(...) paths in the generated CSS are relative to the CSS file's location. If you place fonts in /fonts/ and your stylesheet in /css/, the paths must be ../fonts/filename.woff2, not fonts/filename.woff2. Upload the whole converted folder, keep the file names unchanged, and verify in the browser's Network panel that each font returns 200 rather than 404.
If fonts are served from another domain, add a CORS header on the font server and consider the crossorigin attribute. Also confirm your server sends a sensible Content-Type for .woff2 (font/woff2); some hosts don't by default.
A practical check
After adding the rule, apply the family to a test element, then use DevTools' Fonts panel to confirm the loaded file is the one you expect and that no weight is being synthesized. If you're converting several weights, generate and test them one at a time before rolling out across the site.
How do I choose between keeping hinting, using TTFAutohint, or stripping hinting for my converted web fonts?
Choose based on how much control you want over rendering at small sizes versus how much file size and unpredictability you can tolerate. For most modern web projects, stripping hinting is the safest default; keep existing hinting only when the source fonts were professionally hinted and you have tested them in Windows browsers; use TTFAutohint when the source fonts have weak or missing hinting but you still care about crispness at small sizes.
Transfonter exposes exactly these three options in its conversion settings (Keep existing TTF, Autohint, Strip hinting), so the choice is a setting you make per conversion rather than something the tool decides for you.
What each option does in practice
| Option | Best for | Trade-offs |
|---|---|---|
| Keep existing TTF hinting | Fonts already hinted by the foundry; sites that must match print or desktop rendering closely | Larger files; old or inconsistent hinting can render oddly in some browsers |
| TTFAutohint | Unhinted or lightly hinted fonts used at small UI sizes (labels, navigation, dense tables) | Adds processing and some file weight; autohinting can occasionally distort unusual glyph shapes, so spot-check |
| Strip hinting | Body text at normal sizes, modern high-DPI screens, performance-sensitive pages | Slightly softer rendering at very small sizes on low-DPI Windows displays |
A practical decision path
- Check whether the font was commercially hinted. If yes and you have a Windows test machine, try Keep existing TTF and compare against the stripped version at 12–14px.
- If the font is a free or open-source face without hinting, and you use it for UI text below about 16px, convert once with TTFAutohint and once stripped, then compare screenshots on a standard-DPI Windows display.
- If the font is only used for headings at 24px and above, strip hinting. Differences are negligible there and the file stays smaller.
As a concrete scenario: a documentation site using an open-source sans for 14px sidebar navigation would likely benefit from TTFAutohint, while the same font used for 32px article titles can be stripped without visible loss.
A useful next step is to run the same font through Transfonter twice, once with TTFAutohint and once stripped, and load both demo pages side by side at your real text sizes before committing. For background on how hinting affects rendering, the Wikipedia article on font hinting explains the underlying technique.
What is the Base64 encode option used for, and when should I enable it instead of linking to separate font files?
Base64 encoding embeds the font file itself inside the CSS as a data URI, so the @font-face rule carries the font rather than pointing to a separate .woff2 or .woff file. In Transfonter, it's one of the conversion settings you can toggle before converting, and the output CSS reflects that choice.
When it helps
- Single-request delivery for a small font. If you're shipping a tiny subset (a handful of icons or a couple of weights under a few dozen KB), inlining can remove a separate font request.
- Strict single-file constraints. Environments where you can only drop one CSS file and no asset folder, such as some email templates or embedded widgets.
- Avoiding path and CORS issues. A data URI can't 404 or be blocked by cross-origin rules, which simplifies some third-party embedding scenarios.
When to link separate files instead
- Normal websites with multiple weights or large families. Base64 inflates size by roughly a third, and the encoded font sits inside the render-blocking CSS, so the browser can't download it in parallel or cache it independently.
- Fonts reused across pages. A separate file is cached once and reused; an inlined font is re-sent with every CSS response unless the CSS itself is cached.
- Subsetting and format negotiation. Separate files let the browser pick WOFF2 over WOFF and let you serve narrower subsets per language.
A quick rule: enable Base64 only when the font is small, used on a single page or asset, and you specifically need a self-contained CSS file. Otherwise, link separate files and let the browser cache them.
If you do inline, pair it with Transfonter's subset and Unicode-range settings so you're not encoding glyphs the page never uses, and keep font-display: swap so text stays visible while the embedded font parses.
How do I create a demo page and download the ZIP archive with the converted fonts and CSS after uploading my files?
Upload your fonts in Transfonter's Webfont generator, choose your conversion settings, and click Convert. When conversion finishes, download the ZIP archive it produces. That archive contains the converted font files, the CSS stylesheet and a demo page, so you can open the demo locally to check how the font renders before adding the files to your site.
Settings worth checking before you convert
- Output formats: select the formats you actually need (for example WOFF and WOFF2 for modern browsers) rather than every option.
- Demo page language: pick the language for the generated demo page; "Without demo page" omits it.
- Font display: choose how text behaves while the font loads (swap, block, fallback and so on).
- Subsets and Unicode ranges: restrict the character set if you only need Latin text, which keeps files smaller.
- Base64 encode: useful only if you plan to embed fonts directly in CSS; it inflates the stylesheet.
A practical check
Suppose you are shipping a small marketing site with one custom headline font. Convert only that font to WOFF2 (plus WOFF as a fallback), set font display to swap, and keep the Latin subset. Open the demo page from the ZIP, confirm the headline looks right at several sizes, then copy the CSS rule and font files into your project. If the demo shows clipped accents or odd spacing, revisit the vertical-metrics and hinting options and convert again.
For broader context on web font delivery, see MDN Web Docs on @font-face.
User reviews (0)