Кириллический шрифт нельзя оценивать только по красивому слову "Привет". Он может выглядеть хорошо на одном скриншоте, но ломаться в реальном тексте: нет `Ё`, перепутаны Unicode-коды, не хватает знака рубля, съезжает кернинг, обрезаются верхние элементы, в системе показывается странное имя или веб-subset теряет часть символов.
Перед публикацией нужен не художественный взгляд, а короткая техническая проверка. Она не заменяет полноценный font engineering, но помогает отсеять файлы, которые нельзя безопасно отдавать пользователям.
1. Проверьте Unicode-покрытие
Для русского языка базово нужен кириллический блок Unicode. Официальная таблица Unicode Cyrillic U+0400-U+04FF показывает, где находятся основные буквы кириллицы, включая `Ё` и `ё`. Для других языков может понадобиться больше: Cyrillic Supplement, Cyrillic Extended-A/B/C и дополнительные символы.
Минимум для русскоязычного интерфейса:
| Группа | Символы для проверки | Почему важно |
|---|---|---|
| Прописные | А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я | Без полного алфавита шрифт непригоден для русского текста |
| Строчные | а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я | Часто забывают `ё` или мягкий/твёрдый знак |
| Цифры | 0 1 2 3 4 5 6 7 8 9 | Нужны для интерфейса, цен и дат |
| Пунктуация | « » „ “ ” — – № | Русская типографика быстро выявляет недостающие знаки |
| Валюта | ₽ | Нужна для российских ценников и каталогов |
| Латиница | A-Z, a-z | Нужна для брендов, URL, email и смешанного текста |
Если шрифт заявлен как кириллический, но в нём нет `Ё/ё`, это не мелочь. В реальном русском тексте такие слова встречаются, а fallback на одну букву выглядит неаккуратно.
2. Проверьте `cmap`: буква должна быть не только нарисована
Глиф может существовать в файле, но не быть привязанным к правильному Unicode-коду. За сопоставление character codes и glyph IDs отвечает таблица `cmap`; Microsoft описывает её в OpenType cmap table.
Практический тест простой: вставьте в редактор контрольную строку, а не выбирайте глиф вручную из панели. Если символ набирается с клавиатуры и отображается нужной буквой, mapping работает. Если буква появляется только через glyph palette, для обычного пользователя она фактически недоступна.
Контрольная строка:
```text Съешь ещё этих мягких французских булок, да выпей чаю. Ёжик, подъём, № 7, цена 1 250 ₽. ABC abc 0123456789 — «кавычки» ```
3. Посмотрите kerning и позиционирование
Кириллица имеет собственные проблемные пары. Даже если латинский `AV` выглядит аккуратно, это не гарантирует хорошее расстояние между `То`, `Го`, `РУ`, `Те`, `Ул`, `Фо`, `ЛТ`.
В OpenType за подстановки отвечает GSUB, а за позиционирование глифов - GPOS. Kerning в современных шрифтах часто живёт именно в GPOS. Поэтому проверка должна включать не только набор букв, но и реальные пары в разных размерах.
| Тест | Что смотреть |
|---|---|
| `То Те Та Ту Тя` | Не слишком ли большая дыра после `Т` |
| `Го Га Ге` | Не разваливается ли пара с открытой формой `Г` |
| `РУ РА УА` | Не липнут ли диагональные/круглые формы |
| `ЛТ ДТ АТ` | Не возникает ли визуальный перекос |
| `ёлка ЁЖ ЕЁ` | Совмещаются ли точки/акценты и не выбивается ли `Ё` |
| `111 000 99 ₽` | Ровность цифр и знак рубля в интерфейсных строках |
Проверяйте это не только крупно, но и в 14-18 px: именно там пользователь чаще видит интерфейсный текст.
4. Метрики: буквы не должны обрезаться
Кириллица часто выше и плотнее латиницы. Если ascender, descender, line gap или bounding boxes настроены плохо, верхние элементы, диакритика и `Ё` могут обрезаться в кнопках, полях ввода или таблицах.
Проверьте строки в нескольких средах: браузер, графический редактор, офисный документ, мобильный экран. Особенно полезны плотные компоненты: кнопка высотой 32 px, поле поиска, таблица, карточка товара.
Симптомы плохих метрик:
- точки у `Ё/ё` почти касаются верхней границы строки;
- строка прыгает при замене fallback-шрифта на webfont;
- нижние элементы обрезаются в input или button;
- межстрочный интервал выглядит намного больше или меньше системного.
5. Проверьте name table и семейство
Пользователь видит не файл `font-final-v7.ttf`, а имя семейства в системе и редакторе. За записи имён отвечает OpenType `name` table; Microsoft описывает её в спецификации name table.
Что проверить:
| Поле | Риск |
|---|---|
| Family name | Все начертания должны попадать в одно семейство, если это семейство |
| Subfamily | Regular, Bold, Italic должны быть названы согласованно |
| Full name | Не должно быть мусора вроде `Untitled1` или имени чужого шрифта |
| Version | Помогает отличать исправления |
| Designer / manufacturer | Важно для каталога и attribution |
| License URL / description | Упрощает проверку происхождения |
Плохие имена приводят к тому, что шрифт дублируется в меню, Bold не связывается с Regular или пользователь выбирает не тот файл.
6. Лицензия и источник
Технически хороший шрифт нельзя публиковать, если непонятны права. Перед загрузкой в каталог сохраните source URL и license file. Для открытых шрифтов часто встречается OFL; её официальный текст лежит на openfontlicense.org. Если лицензия коммерческая, отдельно проверьте web embedding, modification rights и возможность конвертации в WOFF2.
Минимальный набор metadata для публикации: название, slug, автор, источник, license code, языки, категория, теги и краткое описание.
7. Webfont: subset не должен сломать кириллицу
После проверки TTF/OTF нужно проверить именно тот файл, который пойдёт на сайт. Если вы конвертировали шрифт в WOFF2 или вырезали subset, ошибки могут появиться на этом этапе. WOFF2 как формат веб-доставки описан в W3C WOFF2, но корректность набора символов остаётся ответственностью сборки.
Проверка после subset:
| Шаг | Что сделать |
|---|---|
| Открыть страницу с WOFF2 | Убедиться, что браузер скачал нужный файл |
| Вставить контрольную строку | Проверить `Ё`, `ё`, `№`, `₽`, кавычки и тире |
| Сменить язык контента | Если есть латиница/кириллица, оба набора должны отображаться |
| Отключить кэш | Убедиться, что fallback не маскирует ошибку |
| Проверить mobile viewport | Метрики и переносы могут проявить проблему на узком экране |
8. Автоматическая проверка помогает, но не заменяет глаза
Инструменты вроде Font Bakery полезны для технических проверок: metadata, таблицы, имена, outline-ошибки, профили Google Fonts и другие условия. Но даже хороший автоматический отчёт не скажет, красиво ли выглядит `То` в конкретной гарнитуре и не слишком ли узкая `Ж` рядом с цифрами.
Лучший подход - комбинировать автоматические проверки, контрольные строки и реальный макет сайта.
Итоговый чеклист
1. Есть полный русский алфавит, включая `Ё/ё`. 2. Символы набираются с клавиатуры, а не только выбираются из glyph palette. 3. `cmap` корректно связывает Unicode и глифы. 4. Kerning и GPOS-позиционирование проверены на кириллических парах. 5. Метрики не обрезают верхние и нижние элементы. 6. `name` table показывает чистое имя семейства и начертаний. 7. Лицензия и source URL сохранены. 8. WOFF2/subset проверен отдельно от исходного TTF/OTF. 9. Контрольная строка протестирована в браузере и мобильном размере.
Хороший кириллический шрифт - это не только красивые формы. Это правильные Unicode-коды, аккуратные таблицы, честная лицензия, стабильные метрики и проверка именно того файла, который увидит пользователь.