Unicode reference

How Small Unicode Text Works

A practical guide to characters, glyphs, incomplete coverage, accessibility, confusables, and safe copying.

Reviewed 27 August 2026 · Unicode 17.0.0 · Registry 1.0.0

Characters, glyphs, fonts, and CSS are different

A character is an encoded unit with an assigned code point. A glyph is the shape a font uses to draw it. CSS font-size changes presentation while keeping the original character; this generator changes the character itself.

That distinction matters when text is copied, searched, indexed, pronounced, or normalized. Similar-looking output may carry a phonetic, mathematical, or modifier meaning.

Why there is no uniformly small alphabet

Small-cap-like symbols are distributed across IPA Extensions, Phonetic Extensions, Latin Extended blocks, and other ranges. Superscript and subscript forms are also incomplete. They were encoded for specific linguistic, mathematical, or technical uses—not as a decorative alphabet.

This registry therefore distinguishes reviewed mappings, optional visual approximations, and passthrough. It preserves an entire grapheme cluster when no suitable mapping exists.

Accents, other scripts, and emoji

Precomposed accents, combining sequences, CJK, Arabic, Hebrew, and unsupported scripts remain intact. Family emoji, flags, and skin-tone sequences are segmented as grapheme clusters so the tool does not slice a visible symbol apart.

Preservation is not a compatibility guarantee: the destination still needs a font and input pipeline that supports the original and transformed characters.

Accessibility, search, and confusables

Screen readers may announce a transformed character by its technical name or meaning. Search and moderation tools may treat it differently from the ordinary letter. Visually similar characters can also be abused for impersonation.

Keep essential information in ordinary text, avoid transformed identifiers, and use the plain-text source as the accessible fallback.

Method, provenance, and change control

Registry 1.0.0 is a project curation based on Unicode 17.0.0 names lists and data. Each entry records its output name, block, status, semantic warning, reversibility, and source reference. Tests cover Latin alphabets, digits, combining marks, multiple scripts, emoji, invisible characters, limits, literal HTML, and safe round trips.

Important corrections change the registry version and are noted in the project changelog. Unicode’s data and software license applies to reused Unicode data; the curated mapping choices remain the responsibility of this project.

Primary references