Font Analyzer

Open a TTF, OTF, WOFF or WOFF2 file and read everything inside it – family and version, designer and licence, weight and metrics, glyph count, script coverage and variable axes. Nothing is uploaded.

Drop a font here, or click to choose one

.ttf · .otf · .woff · .woff2  ·  up to 20 MB

The font is read on your own device. Nothing is sent to this site, and nothing is stored.

How to use this tool

  1. Drop a font file on the box above, or click it and browse. TTF, OTF, WOFF and WOFF2 all work.
  2. Read the summary at the top – family, style, glyph count and file size are the four things most people came for.
  3. Scroll for the detail: identity, metrics, designer and licence, variable axes, OpenType features, and script coverage.
  4. Export it as JSON if you need the numbers somewhere else – a spec sheet, a bug report, an asset inventory.

What the report tells you

  • Identity – family, subfamily, full and PostScript names, version, and whether the outlines are TrueType quadratics or CFF curves.
  • Style & metrics – weight and width class, italic angle, whether it is monospaced, and the numbers a layout depends on: units per em, ascender, descender, line gap, cap height, x-height.
  • Design & licensing – designer, foundry, vendor ID, copyright, trademark, licence text and URL, plus the fsType embedding bits.
  • Variable axes – if the font is variable, each axis with its minimum, default and maximum.
  • OpenType features – every feature tag in GSUB and GPOS, named where the tag is a standard one.
  • Script coverage – which writing systems the font actually has glyphs for.

How script coverage is measured

Each script is tested against a fixed list of the characters it genuinely needs, not against its whole Unicode block. That distinction matters: most blocks contain unassigned code points, so measuring against the block makes every font look about 60% covered and the number tells you nothing.

There is a real limit to what this can prove. Coverage means the glyphs are present. Scripts like Arabic, Devanagari and Thai also need shaping rules – contextual forms, conjuncts, mark positioning – and a font can carry every character in the list and still set the language badly. Treat a green row as "worth testing", not as "certified".

About the licence information

The copyright, licence and fsType fields are read straight out of the file. They are what the foundry recorded when it was built, which makes them useful and not authoritative — fields go stale, get copied between projects, or are left at a template default.

This is information, not legal advice. The fsType bits in particular describe what the foundry declared about embedding, not what your licence permits. Read the actual licence before using a font commercially or embedding it in an app.

Why it runs in your browser

Fonts are usually licensed, and many licences forbid redistributing the file. Uploading one to a stranger's server to read its metadata is a redistribution you probably did not intend. The parser here is JavaScript and WebAssembly running in this tab; there is no upload endpoint on this page.

Once you know what is in the file: TTF to WOFF2 and OTF to WOFF2 make it web-ready, and the @font-face generator writes the CSS that loads it. If what you actually wanted was styled letters to paste into a bio, that is the font generator.

Frequently asked questions

TTF, OTF, WOFF and WOFF2. WOFF2 files are unpacked first, in your browser, because the parser cannot read the compressed form directly - the result is the same either way.

No. The parsing happens in your own browser using JavaScript and WebAssembly. Fonts are frequently licensed and non-redistributable, so this page is built so that the file never has to leave your machine.

fsType is a set of bits inside the font where the foundry recorded what embedding it intends to allow - installable, preview and print only, no subsetting, and so on. It is useful because it is machine readable, but it is a declaration in a file, not your licence agreement.

No, and you should not treat it as if it does. The copyright, licence and fsType fields are information, not legal advice. They can be stale, copied from another project, or left at a template default. Always read the actual licence before commercial use.

Not quite. Coverage means the glyphs are present. Scripts such as Arabic, Devanagari and Thai also need shaping rules - contextual forms, conjuncts, mark positioning - and a font can have every character and still set the language badly. Read a green row as worth testing, not as certified.

The size of the design grid the font was drawn on. 1000 is typical for CFF/OpenType fonts and 2048 for TrueType. It does not affect how large the font renders; it determines the precision of every other metric in the file.

Yes. Copy the whole report as JSON, or download it as a file. That is useful for asset inventories, spec sheets and bug reports where you need to record exactly which build of a font you had.