Style Text · browser-local
Small Caps Generator
Unicode has no complete small-caps alphabet. This tool assembles a practical approximation from phonetic and Latin-extension characters, preserves missing letters, and makes its incomplete coverage explicit.
- Index state
- eligible
- Reviewed
- 2026-08-24
- Input limit
- 5,000 graphemes
Small Caps Generator
ꜱᴍᴀʟʟ ᴄᴀᴘꜱ ᴇxᴀᴍᴘʟᴇ
Good fit
Use this tool when
- You want a compact decorative label or short username.
- You accept an approximation rather than typographic small caps.
- You want missing characters left visible.
Keep the original
Avoid it when
- You need professional typography—use CSS font-variant instead.
- The exact spelling must be visually uniform.
- The text contains many accented or non-Latin letters.
Reviewed truth vectors
Examples that expose the edge cases
Small capsꜱᴍᴀʟʟ ᴄᴀᴘꜱCommon Latin letters map well.
XylophonexʏʟᴏᴘʜᴏɴᴇX stays ordinary because there is no dedicated mapping in this set.
Café 24ᴄᴀꜰé 24Accents and digits are preserved.
Transparent implementation
How it works
- 01
Case-fold ASCII letters for a uniform small-cap result.
- 02
Map only characters with a reviewed small-cap approximation.
- 03
Preserve gaps and lower the coverage percentage.
Known limitations
What the result cannot promise
There is no complete Unicode small-caps alphabet.
Characters come from several blocks with inconsistent font metrics.
Search and assistive reading may be less reliable.
Questions before copying
Frequently asked questions
Why does X stay lowercase?
The V1 set does not substitute an unrelated character just to make X look smaller. It preserves the source and reports the gap.
Are uppercase and lowercase inputs different?
Both are case-folded to the same reviewed approximation when a mapping exists.
Is CSS small-caps better?
Yes for websites and documents you control. Unicode small caps are mainly useful in plain-text fields that cannot carry formatting.
Experience, expertise & trust
How we verify this tool
Automated evidence
- Tool-contract & coverage suite30 deterministic cases
tests/tools-30.test.mjs mirrors the ToolRunner dispatch and asserts every registered engineId returns the contracted output shape, plus a coverage guard so no tool silently drops characters.
Run in: node --test after a production build (vinext build) - Rendered-HTML suite12 deterministic cases
tests/rendered-html.test.mjs renders the deployed server bundle and asserts the Unicode-version manifest and each wave's tool markup are present in the server-rendered HTML.
Run in: node --test against the built dist/server bundle - Transform & cleanup suite21 deterministic cases
tests/transform-cleanup.test.mjs exercises each deterministic cleanup and transform action against whitespace, duplicate, ordering, casing, and HTML-to-text edge cases.
Run in: node --test, no network, no randomness
Standards this tool follows
- The Unicode Standard, Version 17.0
Mathematical Alphanumeric Symbols and Enclosed Alphanumerics blocks used for presentation styles.
- UAX #44: Unicode Character Database
Character properties that determine which source characters have a style mapping.