ГлавнаяИнструментыПродуктовый дизайнГенератор типографической шкалы
Генератор типографической шкалы с резиновым clamp()
Выберите базовый размер и коэффициент — от сдержанной малой секунды до золотого сечения — для самого узкого и самого широкого экрана. Генератор посчитает все ступени, запишет CSS clamp(), который плавно растёт между двумя ширинами, покажет шкалу на любой ширине, предупредит о размерах, мешающих масштабированию в браузере, и выгрузит CSS-переменные, конфиг Tailwind, SCSS или дизайн-токены.
—
| Ступень | Мин., px | Макс., px | Значение CSS |
|---|
Формула. размер = база · коэффициентступень для каждой ширины; наклон = (макс − мин) / (ширинамакс − ширинамин); font-size: clamp(мин, (мин − наклон · ширинамин) / 16 rem + наклон · 100 vw, макс).
Расчёт идёт в вашем браузере — введённые данные никуда не отправляются.
Как пользоваться
- Задайте ширины экранаМинимальная — самый узкий экран, под который вы проектируете (360 px — частая ширина телефона), максимальная — ширина, после которой макет перестаёт расти. Снимите галочку «Резиновая», если нужна одна статичная шкала.
- Выберите базу и коэффициентОсновной текст обычно 16–18 px. Небольшие коэффициенты подходят плотным интерфейсам, крупные дают выразительные заголовки. Меньший коэффициент на телефоне и больший на десктопе не дают заголовкам вылезать за край.
- Проверьте превью и таблицуДвигайте ползунок ширины, чтобы увидеть все ступени на любом экране. В таблице — размеры на обоих краях и значение clamp(); предупреждения о масштабе появляются над превью.
- Выгрузите кодВыберите CSS-переменные, Tailwind v3 или v4, SCSS или дизайн-токены, задайте префикс и имена ступеней и скопируйте код.
Что такое модульная типографическая шкала
Модульная шкала — набор размеров шрифта, в котором каждый следующий размер равен предыдущему, умноженному на один и тот же коэффициент. Вместо того чтобы подбирать на глаз 14, 18, 22 и 31, вы выбираете базу и коэффициент — и все заголовки, подписи и метки получают размеры, связанные между собой. Идея пришла из музыки, где интервалы между нотами — отношения частот; для веба её популяризировал Тим Браун в статье «More Meaningful Typography» (A List Apart, 2011).
Отрицательные ступени дают подписи и мелкий текст, положительные — заголовки. Распространённые коэффициенты и где они уместны:
- 1,067 малая секунда, 1,125 большая секунда — очень плотные шкалы: дашборды, приложения с большим объёмом данных, маленькие экраны.
- 1,2 малая терция, 1,25 большая терция — самый частый выбор для продуктовых интерфейсов и документации.
- 1,333 чистая кварта, 1,414 увеличенная кварта — чёткая иерархия для лендингов и блогов.
- 1,5 чистая квинта, 1,6 малая секста, 1,618 золотое сечение — выразительные шкалы; ступеней должно быть немного, иначе к четвёртой заголовки становятся огромными.
Круглые значения не обязательны: браузеры отрисовывают дробные размеры, а согласованность ступеней важнее целых чисел.
Резиновая типографика на CSS clamp()
Одна шкала редко подходит и телефону шириной 360 px, и десктопу в 1440 px: заголовки, хорошие на большом экране, на мобильном вылезают за край. Раньше это решали набором медиазапросов, которые переключают размеры скачком. Резиновая типографика вместо этого линейно увеличивает каждый размер с ростом ширины экрана между двумя точками и фиксирует его за их пределами. В CSS это одно объявление:
В генераторе базу и коэффициент можно задать отдельно для каждого края — так работает Utopia (utopia.fyi). Меньший коэффициент на телефоне и больший на десктопе почти не меняют основной текст, зато заголовки на большом экране становятся заметнее. Все значения записываются в rem, поэтому шкала учитывает размер шрифта, выбранный пользователем.
Резиновые шрифты и доступность
Критерий WCAG 1.4.4 требует, чтобы текст можно было увеличить до 200 % без потери содержимого. Масштаб браузера увеличивает значения в rem, но не в vw, поэтому размер, сильно зависящий от ширины экрана, может не удвоиться при увеличении. Два правила делают резиновую типографику безопасной:
- Всегда добавляйте rem в предпочтительное значение — никогда не пишите просто
5vw. Генератор всегда выдаётrem + vw. - Максимум не больше 2,5 минимума. Как показал Максвелл Барвиан (Smashing Magazine, 2023), если наибольший размер в clamp() не больше наименьшего в 2,5 раза, текст всегда можно увеличить до 200 %. Ступени, нарушающие это правило, отмечаются над превью.
Как выбрать настройки для продуктового интерфейса
- Начинайте с основного текста. 16 px — размер браузера по умолчанию и хороший минимум для чтения; для длинных текстов на десктопе часто берут 17–18 px. Подписи интерфейса и ячейки таблиц могут использовать ступень −1.
- Ограничьте число ступеней. Большинству продуктов хватает двух ступеней ниже базы и 4–5 выше. Больше размеров делают иерархию не понятнее, а запутаннее.
- Уменьшайте межстрочный интервал с ростом кегля. Около 1,5 для основного текста и 1,1–1,2 для крупных заголовков; экспорт в Tailwind включает рекомендуемый интервал для каждой ступени.
- На маленьких экранах берите меньший коэффициент. 1,2 на телефоне и 1,25–1,333 на десктопе — надёжная пара для продуктового интерфейса.
- Короткие тексты интерфейса тоже должны читаться. Подсказки, шаги онбординга и пункты чеклиста часто набирают 12–13 px, чтобы уместить в маленький пузырь. Держите их не меньше ступени −1 и сокращайте текст — поможет калькулятор времени чтения подсказок.
- Проверяйте контраст на самом мелком размере. Тонким начертаниям и мелкому кеглю нужно больше контраста — проверьте пары в проверке контраста цветов.
Источники
- Brown T. More Meaningful Typography. A List Apart, 2011 — модульные шкалы для веба.
- Брингхерст Р. Основы стиля в типографике. — классическая типографическая шкала и музыкальные интервалы.
- Utopia (utopia.fyi), J. Gilyead и T. Hill — резиновые шкалы с разными коэффициентами для узкого и широкого экрана.
- Barvian M. Addressing Accessibility Concerns With Using Fluid Type. Smashing Magazine, 2023 — правило 2,5× для масштаба 200 %.
- W3C. WCAG 2.2, критерий 1.4.4 «Изменение размера текста».
- W3C. CSS Values and Units Module Level 4 — clamp(), rem и vw.
Частые вопросы
Какой коэффициент типографической шкалы лучше?
Единственно правильного нет. Для продуктовых интерфейсов и документации чаще всего берут 1,2 (малая терция) или 1,25 (большая терция), для лендингов — 1,333 или 1,414. С коэффициентом 1,5 и больше ступеней должно быть немного: размеры растут очень быстро.
Как рассчитать резиновый размер шрифта через clamp()?
Найдите наклон: (макс. размер − мин. размер) / (макс. ширина − мин. ширина). Сдвиг = мин. размер − наклон × мин. ширина. Затем запишите clamp(мин. размер, сдвиг в rem + наклон × 100 vw, макс. размер). Для 16 px при 320 px и 18 px при 1240 px получится clamp(1rem, 0.9565rem + 0.2174vw, 1.125rem).
Резиновая типографика доступна?
Да, если предпочтительное значение сочетает rem и vw, а максимальный размер не больше минимального в 2,5 раза. Тогда масштаб браузера по-прежнему увеличивает текст до 200 %, как требует WCAG 1.4.4. Размеры только в vw на масштаб не реагируют — их лучше избегать.
Размер шрифта задавать в px или rem?
В rem. Он учитывает размер шрифта, выбранный пользователем в настройках браузера, а px — нет. Генератор показывает размеры в px для наглядности, но все значения CSS пишет в rem, считая 1rem = 16 px, если вы не измените это.
Сколько размеров шрифта нужно дизайн-системе?
Обычно 6–8: два ниже основного текста для подписей и меток, основной размер и 3–5 размеров заголовков. Больше ступеней хуже воспринимаются как иерархия и редко используются последовательно.
Как подключить шкалу в Tailwind CSS?
Для Tailwind v3 вставьте экспорт в theme.extend.fontSize в tailwind.config.js и используйте классы вроде text-step-2 или text-xl. Для Tailwind v4 вставьте блок @theme в CSS: каждая переменная --text-* превращается в утилиту text-*.
Ещё в разделе «Продуктовый дизайн»
- Проверка контраста цветов
Проходит ли пара цветов текста и фона WCAG AA или AAA?
- Генератор доступной палитры
Как получить доступную палитру, где контраст проверен для каждого оттенка?
- Палитра интерфейса для сайта
Какие цвета интерфейса вывести из фирменного цвета, чтобы весь текст прошёл контраст?
- Время чтения подсказок и тура
Успеет ли пользователь прочитать подсказку или шаг тура?
- Проверка текста подсказки
Достаточно ли подсказка короткая, понятная и ведёт ли к действию?
- Калькулятор SUS
Какой балл SUS у интерфейса и хорошее ли у него юзабилити?