You see glyphs every time you read a sentence, tap a keyboard, or scroll a webpage. You just don’t call them that. Understanding what a glyph is in typography clears up one of the most common mix-ups in type design, the difference between a character and the visual shape that represents it.

A glyph is not the same thing as a letter. It’s not the same as a font, either. And once you understand how glyphs work inside font files, how OpenType features swap them, and why glyph count matters for multilingual support, you’ll look at every typeface differently.

This article covers glyph definitions, how they’re built, how they behave across writing systems like Arabic and CJK, and what designers actually do when creating them from scratch.

What Is a Glyph in Typography

A glyph is the specific visual form of a character inside a font. It’s the actual shape you see on screen or on paper, not the abstract idea of a letter.

That distinction trips people up all the time. The letter “A” is a character. But the drawn, rendered version of that “A” in Helvetica Bold? That’s a glyph. Same character, completely different glyph than the “A” in Garamond Italic.

The Unicode standard is what separates character identity from visual form. Unicode assigns a code point (like U+0041 for uppercase A) to each character. The font file then maps that code point to a glyph, the vector outline your device actually draws.

A single character can have multiple glyphs. Think about lowercase “a” in regular weight, then italic, then small caps. Three glyphs, one character. Or look at ligatures like “fi” and “fl,” where two characters merge into one glyph.

As of Unicode 17.0, there are 297,334 assigned characters covering 172 scripts (Wikipedia). But the number of glyphs needed to represent those characters is far higher, because many scripts require multiple glyph forms per character.

Google’s Noto font project covers over 77,000 characters across more than 1,000 languages and 162 writing systems. A single OpenType font file can hold up to 65,535 glyphs, which is exactly why Noto isn’t one file. It’s a collection.

Glyph vs. Character vs. Letterform

These three terms get swapped around constantly. They shouldn’t.

Where is graphic design headed in 2025?

Explore the newest graphic design statistics: industry growth, creative trends, job outlook, and insights shaping the design world.

Check the Data →

The Core Difference

A character is a unit of information. It’s abstract. U+0041 means “Latin capital letter A” regardless of what it looks like. You can’t see a character. You see its glyph.

A glyph is the visual representation. It’s the specific drawn shape inside a font file, defined by Bézier curves and contour points.

A letterform is a broader design concept. It refers to the overall shape and style of a letter across typefaces, focusing on proportions, stroke weight, and structural anatomy.

One Character, Many Glyphs

This is where it gets interesting. Arabic script is the classic example. Each Arabic character has four glyph forms (isolated, initial, medial, final) that change depending on position within a word. The letter “Baa” has one Unicode value but its other positional shapes don’t have separate codes. They’re just different glyphs triggered by context.

Ligatures work the same way. The “fi” ligature combines two characters into one glyph. OpenType fonts handle this through glyph substitution tables, swapping individual glyphs for combined ones based on rules the type designer sets up.

Stylistic alternates add another layer. A font might include three different versions of the ampersand, or swash variants of capital letters. All are separate glyphs mapped to the same underlying characters.

Concept What It Is Example
Character Abstract unit of text with a code point U+0041 = “A”
Glyph Specific drawn shape inside a font “A” in Futura Bold
Letterform Design concept describing letter structure The anatomy of “A” across type families

Why does this matter? Because when you’re choosing a font for web design or print design, glyph count and glyph quality directly affect what you can actually set. A font with 250 glyphs won’t handle Vietnamese diacritics. One with 4,000 might.

How Glyphs Work Inside a Font File

Font files are containers. OTF, TTF, WOFF2. They all store glyph data in structured tables that map character codes to vector outlines. Understanding those tables (at least loosely) helps you pick better fonts and troubleshoot rendering issues faster.

Glyph Tables and Metrics

The glyph outline is a set of Bézier curves. TrueType fonts use quadratic Bézier curves. PostScript-based OpenType fonts use cubic ones. Type designers have preferences here, but for end users the difference is mostly invisible.

Each glyph carries its own metrics:

  • Advance width: total horizontal space the glyph occupies, including sidebearings
  • Sidebearings: the whitespace padding on the left and right of the drawn shape
  • Bounding box: the smallest rectangle that contains the entire glyph outline

These metrics determine how text flows. Poor sidebearings make spacing between letters look uneven, even if the outlines are beautifully drawn.

The HTTP Archive’s 2024 Web Almanac reports that 87% of web pages now use custom web fonts, up from near zero in 2010. Every one of those font files contains glyph tables your browser has to parse and render.

Glyph Substitution and OpenType Features

OpenType Layout tables are where the magic happens. Two tables matter most:

GSUB (Glyph Substitution): handles ligatures, contextual alternates, stylistic sets, and language-specific forms. When you type “fi” and it becomes a connected ligature, that’s GSUB at work.

GPOS (Glyph Positioning): controls kerning pairs, mark positioning for diacritics, and other spatial adjustments between glyphs.

The 2022 HTTP Archive data found that almost 44% of all web fonts include OpenType features. And kerning is the most commonly toggled feature in CSS, with about 3.2% of sites manually enabling or disabling it through font-feature-settings.

In practice, you activate these features in CSS like this: font-feature-settings: "liga" 1, "ss01" 1; or through higher-level properties like font-variant-ligatures. Adobe InDesign exposes them through the OpenType panel. Tools like Wakamai Fondue let you inspect which features a font actually includes.

Took me a while to realize how many fonts ship with features nobody uses, simply because they’re buried in menus. Stylistic sets, for instance. A lot of sans-serif fonts hide alternate “a” or “g” forms behind these sets. You just have to know they’re there.

Common Types of Glyphs

People hear “glyph” and think letters. That’s only part of the picture.

Alphabetic and Numerical Glyphs

Uppercase and lowercase are the obvious ones. But most professional fonts also include small caps, which are separate glyphs, not just scaled-down capitals. The difference matters for typographic hierarchy and readability.

Numerical glyphs get surprisingly complicated. There are four common styles:

  • Lining figures (uniform height, aligned to the cap line)
  • Old-style figures (varying heights, like lowercase letters)
  • Tabular figures (fixed width, for columns of numbers)
  • Proportional figures (variable width, for running text)

Each style is a separate set of glyphs within the same font. Financial documents typically need tabular lining figures. Body text reads better with proportional old-style. If your font doesn’t have these options, you’re stuck with one style for everything.

Ligatures and Special Characters

Standard ligatures (fi, fl, ff, ffi) solve collision problems where ascenders and dots would crash into each other. Discretionary ligatures are more decorative. Think ct, st, or ornamental combinations in serif fonts.

Then there’s everything else. Ampersands, currency symbols, mathematical operators, arrows, diacritical marks, superscripts, subscripts. Each one is its own glyph.

Diacritical marks are tricky. The letter “é” can exist as one precomposed glyph, or as two separate elements: the base “e” plus a combining acute accent. Unicode supports both approaches. Fonts handle this differently, which is why accent rendering sometimes looks off in certain font and software combinations.

Ornaments and Decorative Alternates

Swash capitals add flourished strokes to letterforms, common in display fonts and script fonts.

Ornament glyphs are non-alphabetic decorative elements built into a font. Fleurons, bullets, dividers, frames. Some fonts pack dozens of them.

Monotype’s 2024 Global Font Use Survey found that 83% of designers consider typography important for brand identity. Glyphs like custom ampersands or stylistic alternates are often what make a font feel distinctive for branding work.

Why the Number of Glyphs in a Font Matters

Glyph count is one of the first things to check when evaluating a font. It tells you more than you’d think.

Language Coverage and Capability

A basic Latin font might contain 200 to 300 glyphs. That covers English and a handful of Western European languages. Bump it up to 800 or 900 glyphs and you get broader Latin-extended coverage, plus Greek and Cyrillic. Open Sans, for example, contains 897 glyphs covering Latin, Greek, and Cyrillic character sets.

CJK fonts are a completely different story. Chinese, Japanese, and Korean scripts require thousands of individual glyphs because each ideograph is its own distinct visual form. A single CJK font can contain tens of thousands of glyphs.

Google’s Noto project needed over 110,000 glyphs total to cover 800+ languages. The whole purpose was to eliminate “tofu,” those blank rectangles (.notdef glyphs) that appear when a font can’t render a character.

File Size and Web Performance

More glyphs means a bigger file. And file size hits hard on the web.

The 2024 Web Almanac reports that WOFF2 is used on 81% of desktop sites, making it the dominant web font format. It compresses about 30% better than WOFF, but even with compression, a font with 3,000+ glyphs is going to be heavier than one with 300.

Font Scope Typical Glyph Count Approximate WOFF2 Size
Basic Latin only 95–200 5–11 KB
Latin extended 300–900 15–25 KB
Multilingual (Latin + Cyrillic + Greek) 800–2,000 20–50 KB
CJK font 10,000–65,535 1–8 MB

Font subsetting solves this problem. Tools like glyphhanger and pyftsubset strip out glyphs you don’t need, reducing file size dramatically. One study found that subsetting Roboto to just lowercase, uppercase, numbers, and basic punctuation cut the file from 19KB to 11KB in WOFF2 format, a reduction of over 40%.

If your site only serves English content, shipping a full multilingual font is wasted bandwidth. Subset it. Your users’ load times will thank you.

How to Check Glyph Count

Wakamai Fondue is the fastest free option. Drop a font file in, get a full breakdown of glyph count, supported Unicode ranges, and available OpenType features.

FontForge (free, open source) and professional tools like the Glyphs app or FontLab show glyph inventories with full editing capability. Google Fonts lists glyph counts on each font’s specimen page, though those numbers aren’t always perfectly accurate (some Noto CJK fonts had reported counts that didn’t match actual glyph inventories, per a 2024 GitHub issue).

Glyphs in Web Typography

Web fonts changed everything about how glyphs get delivered and rendered. But they also introduced a whole set of performance and rendering problems that didn’t exist when everyone just used Arial.

Subsetting and Performance

Font subsetting is the single most effective thing you can do for web font performance. It means removing glyphs from the font file that your site doesn’t need.

Google Fonts does this automatically with the unicode-range descriptor, splitting fonts into smaller chunks based on script. Your browser downloads only the subsets it actually needs for the text on the page.

For self-hosted fonts, glyphhanger and pyftsubset are the standard tools. You feed them your content (or a URL) and they output a trimmed font file. The variable font format helps here too. One variable file replaces multiple static weight files, and the median variable font in WOFF2 is around 35KB with Latin-extended coverage, based on a 2024 Google Fonts study.

Variable font adoption keeps climbing. The 2024 Web Almanac found 34% of mobile pages now use variable fonts, up from 29% in 2022.

CSS Properties That Control Glyphs

Several CSS properties directly interact with how glyphs render:

  • font-feature-settings: low-level control over OpenType features (ligatures, alternates, figures)
  • font-variant-ligatures: turns standard and discretionary ligatures on or off
  • font-variant-numeric: switches between lining, old-style, tabular, and proportional figures

The higher-level font-variant-* properties are better practice than font-feature-settings because they cascade properly and are easier to read. But browser support for the granular variants has been slow.

The .notdef Glyph and Fallback Behavior

When a font doesn’t contain a glyph for a requested character, it shows the .notdef glyph. That’s the little rectangle (or “tofu”) you’ve definitely seen before. It’s a signal that the font’s glyph table doesn’t map anything to that code point.

CSS font stacks handle this through fallback chains. The browser tries each font in the stack until it finds one that contains the needed glyph. Operating systems also have their own fallback logic.

Apple’s Last Resort font shows a substitute glyph indicating the Unicode range. SIL International’s Unicode fallback font displays a box with the character’s hex value. These are last-ditch safety nets.

The Noto project was built specifically to kill tofu across the entire Unicode standard. As of late 2024, Noto covers 162 out of 168 scripts in Unicode 16.0. That’s close to full coverage, but not all the way there yet.

Glyphs in Non-Latin Writing Systems

Most glyph explanations stop at the Latin alphabet. That covers maybe 30% of the world’s writing needs.

Non-Latin scripts are where glyph complexity really shows up. A single Arabic character might require four separate glyphs. A Chinese font needs over 20,000 glyphs just for basic coverage. The gap between “character” and “glyph” widens dramatically once you leave English behind.

Arabic Script and Contextual Shaping

Arabic is a joining (cursive) script. Every letter changes shape based on its position within a word.

Position OpenType Feature Tag When Used
Isolated isol Letter stands alone
Initial init Start of a connected word
Medial medi Middle of a connected word
Final fina End of a connected word

Microsoft’s Arabic Typesetting font contains over 1,600 Arabic glyphs to handle all these positional forms, plus mandatory ligatures like lam-alef combinations.

The shaping engine (HarfBuzz on Linux and Android, CoreText on macOS, DirectWrite on Windows) determines the correct glyph form automatically. It reads the Unicode joining properties of each character and applies the right GSUB substitutions in a fixed order.

CJK: Chinese, Japanese, and Korean

Unicode defines a total of 101,996 CJK unified ideographs as of version 17.0 (Wikipedia). Each ideograph is its own distinct glyph. There are no positional variants like Arabic, but the sheer volume is staggering.

A standard Chinese font needs at least 20,000 glyphs. Japanese fonts add hiragana, katakana, and kanji. Korean requires 11,172 possible Hangul syllable blocks.

Typotheque’s CJK fonts contain over 50,000 glyphs each, pushing close to the OpenType maximum of 65,535 per font file. And that’s before accounting for regional variants: the same character can look different in Simplified Chinese, Traditional Chinese, Japanese, and Korean contexts.

File size is the big tradeoff. An unoptimized CJK font weighs 5 to 20 MB, compared to 15-50 KB for a Latin WOFF2. Google Fonts solves this by automatically splitting CJK fonts into 100+ small unicode-range slices, so browsers only download the character subsets a page actually uses.

Devanagari and Indic Scripts

Conjunct formation is the defining challenge here. Consonant clusters in Devanagari merge into combined forms called conjuncts, and the shaping engine has to reorder glyphs during rendering.

A vowel mark that logically comes after a consonant might visually appear before it. The shaping engine handles this reordering between GSUB and GPOS processing stages.

Hanyi launched an accessibility-focused font series in 2024 specifically addressing readability for Indic scripts on government and educational platforms, with about 44% of educational platforms integrating these fonts (Global Growth Insights).

How Designers Create and Edit Glyphs

YouTube player

Type design is slow, precise work. Even a basic Latin font with 250 glyphs takes weeks to draw, space, and test properly. Multiply that across weights and styles and you start to understand why professional font families take years.

Drawing Glyph Outlines

Every glyph starts as a set of Bézier curves. You place anchor points, adjust control handles, and shape contours until the letterform looks right at multiple sizes.

Cubic Bézier curves (PostScript/OTF) give you more control with fewer points. Quadratic curves (TrueType) use more points but are faster to rasterize. Most designers work in cubic and convert to quadratic only for TrueType output.

Consistency across an entire glyph set is the hard part. Stroke weight, curve tension, the angle where strokes meet, the overshoot at round shapes. All of it has to feel unified whether you’re looking at the letter “o” or the number “8” or a curly brace.

Spacing, Kerning, and Metrics

Spacing comes first. Each glyph gets left and right sidebearings that determine how much room it takes up. Good spacing means text looks even without any leading or tracking adjustments.

Kerning comes second. It adjusts specific letter pairs where standard spacing looks off (think AV, To, or Ly). A professional font can have thousands of kerning pairs.

Monotype’s 2024 survey found that 76% of designers prioritize readability and accessibility when selecting fonts. Spacing and kerning quality are the biggest factors in whether a font reads well at body text sizes.

Tools for Glyph Design

Tool Platform Best For
Glyphs 3 macOS only Modern workflow, plugin ecosystem
FontLab 8 Windows, macOS Complex families, variable fonts
RoboFont macOS only Python-driven automation
FontForge All platforms Free, open source, learning

Glyphs has become the most popular choice among professional type designers for its clean interface and fast workflow. FontLab remains the go-to for complex projects, especially CJK fonts or large families with many weights.

Many foundries combine tools. They’ll use Glyphs for drawing, RoboFont for production automation, and FontLab for final QA on tricky technical details. The font editors market is growing at about 6% annually, driven by demand for custom brand typography (Reliable Market Insights).

Naming Conventions and Production

Glyph naming follows the Adobe Glyph List (AGL) standard. Names like “Aacute” or “ffi” tell the font compiler how to map glyphs to Unicode values and how to generate OpenType features automatically.

Getting names wrong breaks things. A ligature named incorrectly won’t trigger in text engines. A glyph with the wrong Unicode mapping will show up as the wrong character or, worse, as tofu.

Production-stage work also includes hinting, which adjusts glyph outlines to snap to pixel grids at small sizes. The x-height of a font, along with its overall baseline positioning, heavily influence how well hinted glyphs render on low-resolution screens.

Glyph Accessibility and Fallback Behavior

Missing glyphs aren’t just a cosmetic issue. For users reading in minority languages or relying on assistive technology, a broken glyph means broken communication.

The Tofu Problem

When a font doesn’t contain a glyph for a character, the system displays a .notdef placeholder. That blank rectangle, sometimes called “tofu,” tells you the font’s glyph table doesn’t cover what’s needed.

Google built the entire Noto font project to fix this. Noto (literally “No Tofu”) now covers over 1,000 languages across 162 writing systems (Google Fonts). IKEA adopted a customized version of Noto Sans as their corporate typeface in 2019, partly for its broad multilingual glyph support.

Font Fallback Chains

How CSS handles it: browsers walk through your font stack left to right, testing each font for the needed glyph. The first font that contains it wins.

How operating systems handle it: macOS, Windows, and Linux each maintain their own fallback logic. Apple’s Last Resort font shows which Unicode block a missing character belongs to. SIL International’s fallback font displays the hex code point value.

UTF-8 now accounts for 98.3% of all web pages (Wikipedia, citing 2024 data). That widespread adoption means character encoding issues are mostly solved. The remaining problem is glyph coverage in the fonts themselves.

Accessibility and Icon Fonts

Icon fonts (like the older Font Awesome approach) map decorative symbols to Unicode code points meant for regular characters. Screen readers can’t interpret them correctly, announcing random letters instead of meaningful content.

The industry has largely shifted to SVG for icons. Vector graphics files can carry proper accessibility attributes (aria-labels, title elements) that icon font glyphs simply can’t.

Hanyi’s 2024 accessibility-focused font series saw adoption by 39% of government websites in its target markets (Global Growth Insights), signaling a broader push for inclusive glyph design in public-facing digital products.

FAQ on What Is a Glyph in Typography

What is a glyph in simple terms?

A glyph is the specific visual shape of a character inside a font. It’s what you actually see rendered on screen or in print. The letter “A” is a character. The drawn version of that letter in Helvetica is a glyph.

What is the difference between a glyph and a character?

A character is an abstract unit of text with a Unicode code point. A glyph is its visual representation within a specific font file. One character can have multiple glyphs, like regular, italic, and small cap versions of the same letter.

How many glyphs does a typical font contain?

A basic Latin font has 200 to 300 glyphs. Professional multilingual fonts like Open Sans contain around 897. CJK fonts for Chinese, Japanese, or Korean scripts can hold tens of thousands, pushing toward the OpenType limit of 65,535.

What are examples of glyphs?

Uppercase and lowercase letters, numerals, punctuation marks, ligatures like “fi” and “fl,” currency symbols, diacritical marks, and stylistic alternates. Swash capitals, old-style figures, and ornamental characters are also individual glyphs within a font.

What is a ligature glyph?

A ligature is a single glyph that replaces two or more characters. The “fi” ligature prevents the dot on the “i” from colliding with the ascender of “f.” OpenType fonts handle ligature substitution automatically through GSUB tables.

How do glyphs work in web fonts?

Web fonts deliver glyphs as vector outlines in WOFF2 or WOFF format. Browsers parse glyph tables from the font file and render each character. CSS properties like font-feature-settings activate specific glyph features such as ligatures or alternate figures.

What is the .notdef glyph?

The .notdef glyph is the placeholder that appears when a font lacks a glyph for a requested character. It usually shows as a blank rectangle, often called “tofu.” Google’s Noto font project was built specifically to eliminate these missing-glyph rectangles.

What is glyph substitution in OpenType?

Glyph substitution (GSUB) is an OpenType feature that swaps one glyph for another based on rules. It handles ligatures, contextual alternates, positional forms in Arabic script, and stylistic sets. The font designer defines these substitution rules during production.

Why does glyph count affect web performance?

More glyphs means a larger font file. Larger files take longer to download, slowing page rendering. Font subsetting removes unused glyphs to reduce file size. Tools like glyphhanger and pyftsubset trim fonts to only the characters a specific site needs.

What tools do designers use to create glyphs?

The most common tools are Glyphs (macOS), FontLab (cross-platform), RoboFont (macOS), and FontForge (free, open source). Designers draw glyph outlines using Bézier curves, then set spacing, kerning pairs, and OpenType features before exporting the final font file.

Conclusion

A glyph is the building block of everything you read. Knowing what a glyph is in typography changes how you evaluate fonts, troubleshoot rendering issues, and make smarter decisions about type for any project.

The difference between a glyph and a character isn’t academic. It affects language support, font file size, web performance, and accessibility across writing systems from Latin to Arabic to CJK.

Glyph substitution through OpenType GSUB tables, proper spacing and kerning pairs, and smart font subsetting are practical skills that separate good typographic work from guesswork.

Whether you’re picking a typeface for a brand guidelines document or subsetting a WOFF2 file for faster page loads, glyph-level understanding gives you real control over how text looks and performs.

Bogdan Sandu
Share
Written by Bogdan Sandu

Bogdan Sandu is a seasoned designer who has been designing websites since 2008. Renowned for his expertise in logo design and visual branding, Bogdan has developed a multitude of logos for various clients. His skills extend to creating posters, vector illustrations, business cards, and brochures. Additionally, Bogdan's UI kits were featured on marketplaces like Visual Hierarchy and UI8. He also wrote in the past years on sites like Design Your Way, WebDesignerDepot, WPDean, Designmodo, Speckyboy, Slider Revolution, and more.