Skip to main content

Font glyph viewer

Upload a font to explore all glyphs, search by Unicode, and inspect metrics.

Free & unlimitedWorks offline
All processing happens in your browser. No data is sent to any server.

The question a glyph grid answers is narrow and important: does this font actually contain the characters my text needs. This page loads your font with the FontFace API into the tab only, then renders a grid of 1,840 code points drawn from twelve Unicode blocks — Basic Latin through Cyrillic, Greek, punctuation, currency, arrows, mathematical operators, box drawing and symbols. A character the font covers appears in its own shapes; one it does not falls back to a system face or a box, which is exactly the signal you are looking for. Click any cell for its code point, block, advance width and bounding-box metrics, or copy the character straight to your clipboard.

Key facts about Font glyph viewer

Key facts about Font glyph viewer
Loading mechanismFontFace with a blob URL from your local file, registered with this document only — no system installation
FormatsTTF, OTF, WOFF and WOFF2
Grid contentsA fixed candidate list of 1,840 code points across 12 blocks. The font cmap table is not read, so coverage is judged visually
Blocks coveredBasic Latin, Latin-1 Supplement, Latin Extended-A, Latin Extended-B, Greek, Cyrillic, General Punctuation, Currency Symbols, Arrows, Mathematical Operators, Box Drawing and Miscellaneous Symbols
Not in the gridCJK, Arabic, Hebrew, Devanagari, emoji and anything above U+26FF — a font can support them and this grid will not show it
Per-glyph metricsAdvance width plus actual bounding-box ascent and descent, measured with canvas measureText at 100 px
Font metricsCap height from H, x-height from x, descender from Hg — measured by rendering, not read from the OS/2 table
SearchMatches the character itself, its hexadecimal code point, or its descriptive name for the characters that have one
Block filterNarrow the grid to one block, which is the quickest way to check a specific script
Glyph sizeAdjustable from 24 px to 96 px across the whole grid, plus a zoom overlay on a single character
CopyAny character copies to the clipboard as its own text, ready to paste into a document or a CSS content rule
KeyboardQuestion mark opens the shortcut list, Escape closes the zoom overlay and then the selection

What happens to your file

The font file stays on your machine. A blob URL is created from it locally, the FontFace API registers the face with this document, and every glyph you see is rendered by your own browser — nothing is uploaded, nothing is stored and there is no server involved at any point. The metrics are measured by drawing characters on an off-screen canvas in the same tab. Closing or reloading the page revokes the blob URL and discards the face, so a licensed or unreleased font can be examined here without a copy existing anywhere else.

About this tool

  1. 1

    Load the font file

    Drop a .ttf, .otf, .woff or .woff2 onto the page. It is registered with this document only and the grid fills immediately.

  2. 2

    Pick the block you care about

    Filter to Latin Extended-A to check European accents, Cyrillic for Russian or Bulgarian text, Currency for a euro or a zloty sign.

  3. 3

    Look for the odd ones out

    A cell rendered in a visibly different style, or showing a box, is a character your font does not contain — the browser substituted a system face.

  4. 4

    Search when you know what you want

    Type the character, its hex code point, or a name fragment such as ampersand. The grid narrows as you type.

  5. 5

    Inspect a glyph

    Click a cell to see its code point, block and metrics: advance width and the actual bounding-box ascent and descent at a 100 px reference size.

  6. 6

    Copy what you need

    The copy button puts the character on your clipboard, ready for a document, a CSS content property or a test string.

Specs & compatibility
Accepted extensions.ttf, .otf, .woff, .woff2
Code points shown1,840
Unicode blocks12
RangesU+0020–U+007F, U+00A0–U+00FF, U+0100–U+017F, U+0180–U+024F, U+0370–U+03FF, U+0400–U+04FF, U+2000–U+206F, U+20A0–U+20CF, U+2190–U+21FF, U+2200–U+22FF, U+2500–U+257F, U+2600–U+26FF
Metric reference size100 px, so figures read as a percentage of the em
Grid glyph size24 px to 96 px
OutputClipboard copy of a character. There is no export, subset or download
Browser supportAny browser with the FontFace API and canvas measureText
Cost / accountFree, unlimited fonts, no signup
  • Latin Extended-A is the row that decides whether a font can set Polish, Czech, Hungarian or Turkish — check it before licensing.
  • Advance width at the 100 px reference size reads directly as a percentage of the em: 52 means the glyph occupies 0.52 em.
  • Compare the x-height figure across two candidate fonts to predict which will look larger at the same point size.
  • A character that appears but looks like a different typeface is a fallback, not a glyph — this is the main thing to watch for while scanning.
  • Box drawing and arrows matter for terminal and UI fonts; the block filter turns that into a ten-second check.
  • The grid is a fixed candidate list, so a font with CJK or emoji coverage will not show it here — use a specimen from the foundry for those scripts.
  • Copy a suspect character and paste it into your actual design to confirm the shape, since a fallback in the grid may render differently in your app.
  • 1,840 code points across 12 Unicode blocks
  • Block filter
  • Search by character, code point or name
  • Per-glyph advance width and bounding box
  • Cap height, x-height and descender readings
  • Adjustable glyph size and zoom overlay
  • One-click character copy
  • Keyboard shortcuts
  • Checking whether a font covers the accented characters your languages need before you buy it.
  • Finding the exact code point of a symbol you can see but cannot name.
  • Copying a currency sign, arrow or mathematical operator into a document.
  • Comparing the x-height of two fonts to predict how they will look at the same size.
  • Verifying that a subset webfont still contains every character your site uses.
  • Inspecting an unfamiliar font file someone sent you, without installing it.
No, and it is worth being precise about it. The grid is a fixed candidate list of 1,840 code points across twelve Unicode blocks, rendered in your font; the font cmap table is not parsed. So coverage is judged visually — a character your font contains shows in its own shapes, one it lacks falls back to a system face or a box. Scripts outside those twelve blocks, including CJK, Arabic, Hebrew and emoji, are not in the grid at all, whether or not your font supports them.
No. The file is read locally, turned into a blob URL and registered with the FontFace API for this document only. Every glyph is drawn by your own browser and the metrics are measured on an off-screen canvas in the same tab. There is no upload endpoint and no stored copy, so a licensed, client-supplied or unreleased font can be examined without a copy of it existing anywhere except on your own disk.
Look at the style, not just the presence of a shape. When the font has no glyph for a code point, the browser substitutes a system font, so the character appears in a visibly different design — different weight, different proportions, often a different colour of grey. An empty rectangle or a box with hex digits means no font on your system has it either. Scanning a filtered block for cells that look out of place takes seconds and is the whole point of the grid.
From rendering, not from the font tables. Each value is measured with canvas measureText at a 100 px font size: advance width is the reported width, and ascent and descent are the actual bounding box of the drawn character. The summary figures use conventional probes — cap height from H, x-height from x, descender from Hg. These are true measurements of how the browser draws the font, which is usually what you care about, but they are not the OS/2 table values a foundry would quote.
No. The only output is a clipboard copy of a single character; there is no export, no subsetting and no download. Subsetting is a separate job with its own decisions about which ranges to keep and which format to emit, and doing it badly produces a webfont that silently loses characters. Use this page to decide what a font contains, then subset with a dedicated tool once you know which ranges your site actually needs.
TTF, OTF, WOFF and WOFF2. Those are the formats the browser text engine reads, and the extension is checked before loading. Variable fonts open and display at their default instance, since there are no axis controls here. Older webfont formats such as EOT are not supported and are no longer relevant; if you have one, convert to TTF or OTF first and load that.
View all

Part of File viewers that open the file in your browser

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy