Типографическая шкала: как выбрать размеры шрифта для сайта
Что такое типографическая шкала, восемь классических коэффициентов, одна страница в трёх шкалах, плавные размеры через clamp(), длина строки и интервал — с живыми примерами.
Коротко
Типографическая шкала — короткий набор размеров шрифта, построенный по одному правилу: каждый следующий размер равен предыдущему, умноженному на один и тот же коэффициент, например на 1,25. Вместо десятков случайных кеглей у проекта появляется семь-восемь ступеней: подпись, основной текст, вводный абзац, заголовки нескольких уровней. Заголовки перестают спорить друг с другом, страница получает ритм, а дизайнер и разработчик говорят на одном языке — «ступень 4», а не «где-то 38 пикселей». Коэффициент задаёт характер: маленький — спокойный и подходит интерфейсам с большим количеством текста, большой — драматичный и подходит лендингам и брендам. С clamp() ступени плавно растут вместе с экраном.
Шкала 1,25: восемь ступеней от подписи до первого экрана
Каждая ступень показана в настоящем размере. Основа — 16 px; каждая ступень вверх умножается на 1,25, вниз — делится.
- Шкала держит ритм
- Шкала держит ритм
- Шкала держит ритм
- Шкала держит ритм
- Шкала держит ритм
- Шкала держит ритм
- Шкала держит ритм
- Шкала держит ритм
Восьми ступеней хватает на целый сайт. Ступени 0–1 — для чтения, 2–3 — для заголовков карточек и подразделов, 4–6 — для разделов, страниц и первого экрана. Если макету нужен размер между двумя ступенями, это повод пересмотреть макет, а не добавлять ступень.
Восемь классических коэффициентов и их характер
Названия пришли из музыкальных интервалов. Чем больше коэффициент, тем сильнее скачок между заголовками и текстом.
| Коэффициент | Название | Характер | Подходит |
|---|---|---|---|
| 1.067 | Minor second | почти ровный | плотных таблиц с данными |
| 1.125 | Major second | тихий | админок, документации |
| 1.2 | Minor third | мягкий | приложений, блогов |
| 1.25 | Major third | сбалансированный | большинства сайтов |
| 1.333 | Perfect fourth | уверенный | корпоративных сайтов, медиа |
| 1.414 | Augmented fourth | выразительный | лендингов |
| 1.5 | Perfect fifth | драматичный | брендов, афиш, портфолио |
| 1.618 | Golden ratio | очень контрастный | одного главного заголовка |
Одна страница в трёх шкалах
Один и тот же фрагмент с коэффициентами 1,125, 1,25 и 1,333: текст не меняется, меняется характер.
Кухни на заказ
Как мы работаем
Замер, проект и сборка — одна команда отвечает за всё от первой встречи до последнего шурупа.
Срок — от трёх недель
Кухни на заказ
Как мы работаем
Замер, проект и сборка — одна команда отвечает за всё от первой встречи до последнего шурупа.
Срок — от трёх недель
Кухни на заказ
Как мы работаем
Замер, проект и сборка — одна команда отвечает за всё от первой встречи до последнего шурупа.
Срок — от трёх недель
Плавные размеры: шкала, которая растёт с экраном
Подвигайте ползунок: заголовок растёт вместе с шириной «экрана» и останавливается на пределах — без скачков между точками перелома.
clamp(1.5rem, 0.9rem + 4cqi, 3.25rem)
Кухни, которые служат десятилетиями
Заголовок растёт вместе с экраном и останавливается на заданных пределах — без скачков между медиазапросами.
На телефоне крупные ступени сжимаются: заголовок в 61 px не помещается на экран шириной 375 px. clamp() задаёт минимум, скорость роста и максимум, поэтому иерархия сохраняется, а на маленьких экранах просто мягче становится контраст между ступенями.
Шкала в коде: 2 примера
Ступени как CSS-переменные — одни и те же имена в макете и в коде.
Ступени шкалы
Размеры в rem уважают кегль, который человек выставил в браузере.
/* Шкала 1,25 от 16px: любой размер в проекте — одна из этих ступеней */
:root {
--step--1: 0.8rem; /* 12.8px — подписи */
--step-0: 1rem; /* 16px — основной текст */
--step-1: 1.25rem; /* 20px — вводный абзац */
--step-2: 1.5625rem; /* 25px — заголовок карточки */
--step-3: 1.953rem; /* 31.25px — подраздел */
--step-4: 2.441rem; /* 39px — раздел */
--step-5: 3.052rem; /* 48.8px — заголовок страницы */
}
body { font-size: var(--step-0); line-height: 1.55; }
h1 { font-size: var(--step-5); line-height: 1.05; }
h2 { font-size: var(--step-4); line-height: 1.1; }
h3 { font-size: var(--step-2); line-height: 1.2; }
small { font-size: var(--step--1); }
Плавные ступени
Крупные ступени растут вместе с экраном, внутри компонента — вместе с его контейнером.
/* Плавные ступени: размер растёт с экраном между двумя пределами */
:root {
--step-4: clamp(1.75rem, 1.35rem + 1.8vw, 2.441rem);
--step-5: clamp(2rem, 1.4rem + 2.8vw, 3.052rem);
}
/* Внутри компонента — от ширины его контейнера, а не экрана */
.card { container-type: inline-size; }
.card__title { font-size: clamp(1.25rem, 0.9rem + 4cqi, 1.953rem); }
Длина строки и межстрочный интервал
Кегль — только половина удобства чтения. Вторая половина — какой длины строка и сколько воздуха между строками.
Хорошая длина строки — около 65 знаков. Глаз легко находит начало следующей строки, а текст не рвётся на короткие обрывки. Когда строка слишком короткая, чтение становится прыжками; когда слишком длинная, глаз теряется на обратном пути.
Хорошая длина строки — около 65 знаков. Глаз легко находит начало следующей строки, а текст не рвётся на короткие обрывки. Когда строка слишком короткая, чтение становится прыжками; когда слишком длинная, глаз теряется на обратном пути.
Хорошая длина строки — около 65 знаков. Глаз легко находит начало следующей строки, а текст не рвётся на короткие обрывки. Когда строка слишком короткая, чтение становится прыжками; когда слишком длинная, глаз теряется на обратном пути.
Интервал между строками решает, будет ли абзац читаться как текст или как плотный кирпич. Для основного текста работает 1,5–1,6, для крупных заголовков — 1,0–1,2.
Интервал между строками решает, будет ли абзац читаться как текст или как плотный кирпич. Для основного текста работает 1,5–1,6, для крупных заголовков — 1,0–1,2.
Интервал между строками решает, будет ли абзац читаться как текст или как плотный кирпич. Для основного текста работает 1,5–1,6, для крупных заголовков — 1,0–1,2.
На глаз или по шкале
Один и тот же экран: слева — пять размеров, подобранных на глаз, справа — четыре ступени одной шкалы.
Мастерская
Мебель из массива под ваши размеры
Собственное производство
Проектируем, изготавливаем и собираем за один заказ — без посредников и переделок.
Рассчитать проектМастерская
Мебель из массива под ваши размеры
Собственное производство
Проектируем, изготавливаем и собираем за один заказ — без посредников и переделок.
Рассчитать проектКак построить шкалу для своего проекта: 6 шагов
-
01
Выбрать основу
Размер основного текста — обычно 16–18 px для сайтов, 14–16 для плотных интерфейсов.
-
02
Выбрать коэффициент
По характеру продукта: спокойный для сервисов, контрастный для брендов.
-
03
Посчитать ступени
Две вниз, пять-шесть вверх — и округлить до целых пикселей там, где это важно.
-
04
Дать ступеням роли
Подпись, текст, вводный абзац, заголовок карточки, раздел, страница — у каждой ступени своя работа.
-
05
Задать интервал для каждой ступени
Чем крупнее кегль, тем меньше line-height: 1,55 для текста, около 1,05 для крупных заголовков.
-
06
Сделать крупные ступени плавными
clamp() для заголовков, фиксированные размеры для текста и подписей.
Частые ошибки с типографической шкалой
-
Двадцать кеглей на одном сайте
Каждый новый блок получает свой размер, и страница теряет иерархию.
-
Соседние размеры слишком близко
22 и 23 px выглядят как ошибка, а не как два уровня.
-
Один интервал на всё
1,5 разваливает крупные заголовки на отдельные строки.
-
Десктопная шкала на телефоне
Заголовок в 61 px превращается в столбик из отдельных слов.
-
Размеры только в пикселях
Сайт игнорирует людей, которые увеличили шрифт в браузере.
-
Жирность вместо размера
Пять насыщенностей на одном экране создают шум; хватает шкалы и двух насыщенностей.
Вопросы о типографической шкале
Что такое типографическая шкала?
Набор размеров шрифта, где каждый следующий равен предыдущему, умноженному на один и тот же коэффициент.
Какой коэффициент выбрать?
1,2–1,25 для большинства сайтов и приложений; 1,333–1,5 для брендов и лендингов с крупными заголовками.
Сколько размеров нужно сайту?
Обычно семь-восемь ступеней; больше — и иерархия перестаёт читаться.
px, rem или em?
rem для шкалы: он учитывает кегль, заданный в браузере, а ступени сохраняют пропорции.
Меняется ли шкала на телефоне?
Крупные ступени становятся меньше через clamp(); основной текст обычно остаётся прежним.
Какая длина строки лучше всего?
Около 45–75 знаков; в CSS её удобно задать через max-width: 65ch.
Форма
Система
для продукта
Собираю дизайн-системы на токенах: шкала шрифтов, отступы, цвета и компоненты, которые живут и в макете, и в коде. Расскажите о проекте — отвечу в течение рабочего дня.