Font Inspector
Open a TTF, OTF or WOFF font and see everything inside it: family and licence, embedding permissions, vertical metrics and the line height they give, glyphs, Unicode coverage, OpenType features and variable axes. Convert to and from WOFF.
How to Use
- Drop a font file in — .ttf, .otf or .woff — or press a preset to load the measured metrics of a common system font. Files are read on your device.
- The specimen renders in the actual font; type over it and drag the size slider.
- Choose which metric set to calculate with: hhea (macOS), typo or win (Windows). The diagram and readouts show the line height that set gives.
- Set the font size and the CSS line-height you plan to use to see the line box and the half-leading in Show Work, and copy the fallback
@font-faceoverrides. - Read the full report under the panels — identity, embedding, tables, coverage, features — then convert to WOFF or back to TTF/OTF, or download the report as JSON.
Vertical metrics (font units)
Worked Example
Arial, as shipped with Windows 11, measured from arial.ttf: 2048 units per em; hhea ascender 1854, descender −434, line gap 67.
line-height: normal = (1854 + 434 + 67) ÷ 2048 = 2355 ÷ 2048 = 1.1499. At 16 px that is 1.1499 × 16 = 18.40 px per line.
Half-leading at line-height: 1.5. The glyph area is (1854 + 434) ÷ 2048 × 16 = 17.875 px. The line box is 1.5 × 16 = 24 px, so (24 − 17.875) ÷ 2 = 3.06 px of space is added above and below.
x-height 1062 ÷ 2048 = 0.519 em (8.30 px at 16 px); cap height 1467 ÷ 2048 = 0.716 em (11.46 px). For a fallback that takes up the same height as Arial: ascent-override: 90.53% (1854 ÷ 2048), descent-override: 21.19%, line-gap-override: 3.27%.
The common mistake: assuming line-height: normal is 1.2 for every font. Segoe UI’s hhea metrics give (2210 + 514 + 0) ÷ 2048 = 1.3301, so at 16 px each line is 21.28 px, not 19.20 px, and 2.88 px taller than Arial. A 40-line list set in normal grows by 115.3 px when the font changes from Arial to Segoe UI. Give line-height a number and the font no longer decides it.
Show Work
Formulas
Why Fonts Have Three Line Heights
Apple introduced TrueType in 1991 with System 7, and its hhea table carried the ascender, descender and line gap the Mac used to space lines. Microsoft licensed TrueType for Windows 3.1 in 1992 and added the OS/2 table with its own values: usWinAscent/usWinDescent, which Windows also uses to decide where glyphs may be clipped, and the “typographic” sTypo values meant for layout. In 1996 Microsoft and Adobe announced OpenType, which kept all three sets so existing fonts and software kept working.
Because the sets often disagree, the same font could sit differently on a Mac and a PC. Later revisions of the OS/2 table added a USE_TYPO_METRICS flag so a font can tell Windows to use the typo values, and the web formats followed: WOFF became a W3C Recommendation in 2012 and WOFF2, with Brotli compression, in 2018. CSS now lets a page override the metrics directly with ascent-override, descent-override and line-gap-override.
About This Tool
A font file is a small database. Alongside the drawings of the letters it carries the family and style names, the foundry and designer, a copyright notice and licence URL, three sets of vertical metrics, kerning and layout rules, the list of characters it can actually set, and a flag stating how the foundry intends it to be embedded. This tool opens TrueType, OpenType and WOFF files and shows all of it, walking the table directory itself: name for identity, head, hhea and OS/2 for metrics, weight and embedding, cmap for coverage, GSUB and GPOS for features and fvar for variable axes.
It turns the metrics into what a designer needs: the line height each set gives, the line box and half-leading at your font size, x-height and cap height in em, and the CSS overrides that make a fallback font match. It converts TTF/OTF to WOFF and back, losslessly, and saves the report as JSON. Everything runs in your browser; the font never leaves your device. The presets use metrics measured from the Windows 11 copies of five system fonts, so you can explore without a file.
Related tools: File Inspector, CSS clamp() Generator, and PDF Workbench.
Frequently Asked Questions
Why does line-height: normal differ between fonts?
normal is not a fixed number: the browser takes it from the font’s own vertical metrics, (ascender + descender + line gap) ÷ units per em. Arial’s hhea values give (1854 + 434 + 67) ÷ 2048 = 1.15, Segoe UI’s give (2210 + 514 + 0) ÷ 2048 = 1.33. At 16 px that is 18.40 px against 21.28 px per line, which is why swapping fonts can make a whole layout taller. Set a number such as line-height: 1.5 to stop it.
What are the hhea, typo and win metrics?
Three sets of vertical metrics, kept for historical reasons. hhea came from Apple and is used on macOS and iOS. The OS/2 table holds Microsoft’s two: usWinAscent/usWinDescent, which Windows uses for line spacing and as a clipping box, and sTypoAscender/Descender/LineGap, which Windows uses instead when the font sets the USE_TYPO_METRICS flag (bit 7 of fsSelection). Well-made web fonts make all three agree so text sits the same on every system.
What does the Embedding section actually mean?
Fonts declare an fsType value stating how the foundry intends them to be embedded in a document or page: Installable, Editable, Preview & Print, or Restricted Licence. It is a statement of intent, not an enforcement mechanism, and not a substitute for reading the licence — but a font marked Restricted is a clear signal to check before you put it on a website or in a PDF.
Why will it not open my WOFF2 file?
WOFF2 compresses with Brotli and transforms the glyph tables. Browsers can display WOFF2 but give pages no Brotli decompressor, so a purely client-side tool cannot unpack one without shipping a large compression library. The tool says so plainly, and still shows the WOFF2 in the live specimen, because the browser itself can render it.
Is my font uploaded, and is WOFF conversion lossless?
Nothing is uploaded: the file is parsed byte by byte in your browser, which matters because many commercial font licences forbid redistributing the file. WOFF conversion is lossless — WOFF is a container that compresses each original table with zlib, and unpacking restores them byte for byte. It typically saves 40–50% over a raw TTF.
How do I use the Font Inspector?
Simply type your numbers and read the result, which refreshes the instant you change something. There is nothing to submit and nothing to wait for.
Do I need to install or sign up for anything?
Not at all — it runs in the browser with nothing to install and no account. After it loads once, it even works without an internet connection.
Is my information private?
Yes. Everything happens in your browser. Nothing you type is sent to a server or saved anywhere.
Common Use Cases
Check a font before buying or shipping it
See the declared licence, the foundry and whether embedding is permitted, without installing anything.
Find out if it supports your language
Unicode coverage shows whether, say, all 128 Latin Extended-A characters are present before you build a Polish or Czech page around it.
Stop layout shift from font swapping
Copy the ascent, descent and line-gap overrides so a fallback such as Arial takes up the same height as the web font while it loads.
Prepare a font for the web
Convert a TTF or OTF to WOFF for @font-face, typically cutting the file size roughly in half.
Debug clipped or uneven text
When accents are cut off on Windows or text sits too high in buttons, compare the hhea, typo and win line heights side by side.
Last updated: