Unicode Range Generator
Generate unicode-range values for font subsetting
Preset Scripts
Tip: Click a preset to add its Unicode ranges to your custom list
Custom Ranges
Generated Output
U+0020-U+007F@font-face {
font-family: 'YourFont';
src: url('your-font.woff2') format('woff2');
unicode-range: U+0020-U+007F;
}Common Characters Reference
| Character | Name | Unicode |
|---|---|---|
| A-Z | Uppercase Latin | U+0041-U+005A |
| a-z | Lowercase Latin | U+0061-U+007A |
| 0-9 | Digits | U+0030-U+0039 |
| À-ÿ | Latin-1 Accented | U+00C0-U+00FF |
| А-Я | Cyrillic Uppercase | U+0410-U+042F |
| а-я | Cyrillic Lowercase | U+0430-U+044F |
| Α-Ω | Greek Uppercase | U+0391-U+03A9 |
| α-ω | Greek Lowercase | U+03B1-U+03C9 |
Developer & Verifier
Developed by
Marcus Rodriguez
Lead Developer
Verified by
Sarah Mitchell
Product Designer, Font Specialist
What is a CSS Unicode Range?
The CSS unicode-range descriptor specifies exactly which character code points a @font-face rule covers, enabling browsers to download font files only when the page contains characters within that range. Unicode 16.0 defines over 154,000 characters across hundreds of scripts — without unicode-range, browsers download entire font files regardless of which characters appear on the page.
Latin fonts typically use 100–1,000 glyphs, while CJK fonts require 10,000+ glyphs for basic coverage. The OpenType specification limits each font file to a maximum of 65,535 glyphs. Declaring unicode-range in @font-face triggers conditional font downloading — browsers evaluate which code points exist in the page content and fetch only the matching font files.
Coordinate unicode-range with font subsetting for maximum file size reduction: subset the font file to remove unused glyphs AND declare unicode-range to prevent unnecessary downloads. The median WOFF2 Latin font measures 12–19 KB (phpied.com analysis of 1,074 Google Fonts), but CJK fonts without subsetting reach 1–5 MB.
Language-specific subsetting guides cover Chinese, Japanese, Korean, Latin, Arabic, and Cyrillic character sets with recommended unicode-range values for each script.
Select from 19 preset Unicode blocks covering Latin, Cyrillic, Greek, CJK, Arabic, Hebrew, Thai, emoji, and more — or build custom ranges by entering hexadecimal start and end code points. The reference table lists 8 common character sets with their exact Unicode boundaries. Output includes the unicode-range value string and a complete @font-face CSS declaration with the unicode-range property ready for your stylesheet.
How to Use This Generator
Select Character Sets
Choose from preset language and script ranges like Latin, Cyrillic, Greek, Arabic, or CJK.
Add Custom Ranges
Optionally define specific Unicode ranges using hexadecimal notation for precise control.
Preview Characters
See a visual display of the characters included in your selected ranges.
Copy CSS
Copy the generated unicode-range CSS output to use in your @font-face declarations.
Features
Common Unicode Ranges
| Script | Unicode Range | Characters | Common Languages |
|---|---|---|---|
| Basic Latin | U+0020-007E | 95 | English (ASCII) |
| Latin-1 Supplement | U+00A0-00FF | 96 | French German Spanish |
| Latin Extended-A | U+0100-017F | 128 | Czech Polish Turkish |
| Cyrillic | U+0400-04FF | 256 | Russian Ukrainian Bulgarian |
| Greek | U+0370-03FF | 135 | Greek |
| CJK Unified | U+4E00-9FFF | 20992 | Chinese Japanese Korean |
| Devanagari | U+0900-097F | 128 | Hindi Sanskrit |
Frequently Asked Questions
What is CSS unicode-range?
How does unicode-range improve performance?
How do I write unicode-range syntax?
What are wildcard ranges?
How do I find which characters are in a font?
What are common unicode-range values for different languages?
Related Tools & Guides
Font Subsetter
Reduce font file size by removing unused glyphs
@font-face CSS Generator
Generate @font-face declarations with unicode-range support
Font Analyzer
Inspect glyph count and character coverage in font files
Unicode Ranges Reference
Technical reference for unicode-range values and character blocks
Subsetting vs Full Fonts
Compare tradeoffs between subsetted and full font files
Subsetting Strategies
Advanced strategies for optimizing font subsets by language
