CSS

CSS: типографика

📚 20 вопросовПройти тест →
Лекция

CSS: типографика

CSS

CSS: типографика

Введение: текст как навигация в интерфейсе 🧭

Если верстка это каркас, то типографика это навигация внутри контента. Даже хороший интерфейс становится сложным, если шрифт, размер и интервалы выбраны случайно.
Пользователь читает текст быстрее, чем изучает дизайн-блоки. Поэтому типографика напрямую влияет на понимание, доверие и конверсию.
💡 Совет: сначала настройте базовые правила для всего текста, а потом точечно усиливайте важные места.
Вывод: типографика определяет, насколько быстро человек понимает интерфейс.

Проблема: текст есть, а смысл теряется

Без типографики:
  • заголовки и абзацы выглядят почти одинаково;
  • длинные блоки утомляют глаза;
  • ссылки и акценты не заметны;
  • интерфейс выглядит "шумным".
С типографикой:
  • структура читается за 2-3 секунды;
  • важные элементы видны сразу;
  • контент легче сканировать;
  • дизайн выглядит аккуратно и профессионально.
Вывод: типографика это не "декор", а инструмент понимания.

Чем помогает и как работает

Типографика помогает:
  • повысить читаемость длинного текста;
  • показать иерархию без лишних цветов и эффектов;
  • уменьшить количество ошибок пользователя;
  • сделать интерфейс визуально стабильным между экранами.
Как это работает:
  1. Вы задаете базовый стиль текста на уровне body: семейство, размер, межстрочный интервал.
  2. Формируете уровни иерархии: h1, h2, основной текст, подписи.
  3. Настраиваете акценты: вес шрифта, ссылки, выделения, метки.
  4. Проверяете ритм: расстояния между строками, заголовками и абзацами.
  5. Тестируете на реальных текстах: коротких и длинных, с цифрами и ссылками.
  6. Фиксируете правила как систему, чтобы новые страницы выглядели одинаково.
Вывод: когда типографика настроена системно, интерфейс становится понятным даже без подсказок.

Ключевые термины (простыми словами)

  • Typography (типографика) - правила, по которым текст выглядит и читается в интерфейсе.
  • Font family (семейство шрифта) - набор похожих шрифтов, который задает "характер голоса".
  • Font size (размер шрифта) - визуальная величина текста.
  • Line height (межстрочный интервал) - расстояние между строками.
  • Font weight (насыщенность) - насколько текст тонкий или жирный.
  • Letter spacing (межбуквенный интервал) - расстояние между буквами.
  • Text transform (трансформация текста) - перевод текста в uppercase/lowercase/capitalize.
  • Text decoration (декорация текста) - подчеркивание и другие линии оформления.
Вывод: если вы уверенно понимаете эти термины, разбор UI-ошибок идет в разы быстрее.

1. font-family - выбор базового голоса

Назначение: задать единый стиль текста на всей странице.
Простыми словами: это выбор "каким голосом" интерфейс разговаривает с пользователем.
Для новичка: если не задать шрифт явно, каждая система может показать текст по-своему, и дизайн "поедет".
Аналогия: как выбрать диктора для аудио-гайда: голос влияет на восприятие даже при одинаковом тексте.
Пример:
body {  font-family: "Inter", "Segoe UI", Arial, sans-serif;}
🔎 Как это происходит на практике:
  1. В дизайн-системе выбирается основной и запасные шрифты.
  2. Базовое правило ставится на body.
  3. Проверяется, что при отсутствии первого шрифта интерфейс остается читаемым.
Характеристики:
  • ✅ влияет на тон интерфейса: нейтральный, строгий, дружелюбный;
  • ✅ fallback-цепочка защищает от сбоев загрузки;
  • ✅ единое семейство снижает визуальный шум.
Когда использовать: всегда в начале проекта, до детальной настройки отдельных блоков.
Вывод: без правильного font-family даже хороший макет выглядит случайным.

2. font-size - иерархия текста

Назначение: разделить главный, вторичный и вспомогательный контент по важности.
Простыми словами: чем важнее текст, тем заметнее его размер.
Для новичка: если h1 и абзац почти одного размера, пользователь не понимает, где заголовок, а где описание.
Аналогия: как громкость голоса в разговоре: главное говорим отчетливее.
Пример:
h1 { font-size: 2rem; }      /* 32px при html=16px */h2 { font-size: 1.375rem; }  /* 22px */p  { font-size: 1rem; }      /* 16px */small { font-size: 0.875rem; } /* 14px */
🔎 Как это происходит на практике:
  1. Определяется базовый размер (16px или 1rem).
  2. Задается шкала размеров для заголовков и текста.
  3. Проверяется читаемость на мобильном и десктопе.
Характеристики:
  • ✅ создает визуальные уровни без лишней графики;
  • ✅ помогает сканировать страницу;
  • ✅ через rem легче поддерживать адаптивность.
Когда использовать: при настройке всей текстовой системы: заголовков, абзацев, подписей, кнопок.
Вывод: правильная шкала размеров делает интерфейс понятным за секунды.

3. line-height - ритм и удобство чтения

Назначение: сделать текст удобным для чтения на разных экранах.
Простыми словами: это "воздух" между строками.
Для новичка: слишком маленький интервал склеивает строки, слишком большой - рвет абзац и мешает читать.
Аналогия: как расстояние между полками: слишком тесно неудобно, слишком широко неэффективно.
Пример:
body { line-height: 1.5; }.lead { line-height: 1.65; }.caption { line-height: 1.4; }
🔎 Как это происходит на практике:
  1. Для основного текста ставят диапазон 1.45-1.65.
  2. Для коротких подписей и лейблов интервал делают плотнее.
  3. Проверяют длинные абзацы: 4-6 строк должны читаться без напряжения.
Характеристики:
  • ✅ главный фактор комфортного чтения после размера;
  • ✅ особенно важен в карточках, статьях и FAQ;
  • ✅ снижает визуальную усталость.
Когда использовать: всегда при работе с абзацами, описаниями, статьями и длинными блоками текста.
Вывод: хороший line-height повышает качество интерфейса даже без изменения дизайна.

4. font-weight и font-style - управление акцентами

Назначение: выделять важное и отделять второстепенное.
Простыми словами: это способ показать "что сейчас главное" внутри текста.
Для новичка: если сделать все жирным, ничто не будет выделяться; акцент работает только при дозировке.
Аналогия: как интонация в речи: важные слова произносятся сильнее, но не каждое слово.
Пример:
h1, h2 { font-weight: 700; }strong { font-weight: 600; }.note { font-style: italic; }
🔎 Как это происходит на практике:
  1. Для заголовков выбирается выраженный вес (600-700).
  2. Для основного текста оставляют нейтральный вес (400-500).
  3. Курсив используют точечно: примечания, термины, цитаты.
Характеристики:
  • ✅ поддерживает иерархию без смены цвета;
  • ✅ улучшает сканирование контента;
  • ⚠️ избыток жирного текста визуально утомляет.
Когда использовать: когда нужно выделить заголовок, ключевую мысль, предупреждение или термин.
Вывод: акценты должны помогать навигации, а не превращать экран в "шум".

5. letter-spacing и text-transform - чистота меток и коротких заголовков

Назначение: сделать короткие надписи более читаемыми и аккуратными.
Простыми словами: заглавные буквы часто нужно немного "раздвинуть", чтобы текст не выглядел склеенным.
Для новичка: если сделали uppercase без интервала, слово может стать тяжелым и трудным для чтения.
Аналогия: как надпись на табличке: буквы чуть разнесены, чтобы читать было легче.
Пример:
.kicker {  text-transform: uppercase;  letter-spacing: 0.08em;  font-weight: 600;}
🔎 Как это происходит на практике:
  1. Для коротких лейблов включают uppercase.
  2. Добавляют letter-spacing в диапазоне 0.04em-0.12em.
  3. Проверяют, чтобы текст оставался читаемым на мобильном.
Характеристики:
  • ✅ помогает меткам и микрозаголовкам выглядеть аккуратно;
  • ✅ повышает читаемость коротких UI-элементов;
  • ⚠️ на длинных абзацах обычно не нужен.
Когда использовать: для бейджей, разделителей, названий секций, коротких служебных меток.
Вывод: letter-spacing нужен точечно: для меток полезен, для длинного текста почти всегда вреден.

6. text-align и text-decoration - финальная читаемость и узнаваемость действий

Назначение: правильно выравнивать текст и сохранять очевидность ссылок.
Простыми словами: пользователь должен сразу видеть, куда смотреть и куда можно кликнуть.
Для новичка: если убрать стиль ссылки и оставить обычный текст, люди часто не поймут, что это действие.
Аналогия: как дорожные указатели: направление и маркировка должны быть очевидными.
Пример:
.hero { text-align: center; }.article { text-align: left; }a {  text-decoration: underline;  text-underline-offset: 2px;}
🔎 Как это происходит на практике:
  1. Длинный текст выравнивают по левому краю для скорости чтения.
  2. Центрирование используют для коротких заголовков или hero-блоков.
  3. Ссылки оформляют так, чтобы они отличались от обычного текста.
Характеристики:
  • text-align влияет на удобство чтения длинных блоков;
  • text-decoration сохраняет понятность интерактивных элементов;
  • ⚠️ чрезмерное центрирование ухудшает сканирование.
Когда использовать: при финальной настройке UI-текста: заголовков, ссылок, карточек, баннеров.
Вывод: текст должен быть не только красивым, но и функциональным.

Must-know факты (нельзя пропустить)

  • Базовый текст ниже 16px часто ухудшает читаемость.
  • line-height для обычных абзацев обычно держат в диапазоне 1.45-1.65.
  • У ссылки должен быть явный визуальный признак клика.
  • Для uppercase почти всегда нужен letter-spacing.
  • Один-два шрифта на проект обычно достаточно.
Вывод: эти правила закрывают большую часть типичных типографических ошибок в проде.

Сравнение единиц для текста

ЕдиницаЧто означаетКогда использовать
pxфиксированный размерточечные значения в компонентах
remразмер относительно htmlсистемная типографика и адаптив
emразмер относительно родителялокальные вложенные элементы

Часто спрашивают на собеседованиях

  • Почему для текста часто выбирают rem, а не только px.
  • Как подобрать line-height для длинного контента.
  • В чем риск text-decoration: none для ссылок.
  • Когда letter-spacing полезен, а когда мешает.
  • Почему fallback-шрифты обязательны в реальных проектах.
Вывод: уверенное понимание этих вопросов показывает зрелое владение CSS.

Типичные ошибки

Ошибка 1: ставить маленький межстрочный интервал

Неправильно: line-height: 1.1 для длинных абзацев.
Правильно: line-height: 1.45-1.65 для основного текста.
Почему: плотные строки читаются медленно и быстро утомляют.

Ошибка 2: использовать слишком много шрифтов

Неправильно: 4-5 семейств шрифтов на одной странице.
Правильно: 1-2 семейства с четкими ролями.
Почему: визуальный шум ломает иерархию и ощущение цельности.

Ошибка 3: убирать узнаваемость ссылок

Неправильно: делать ссылки как обычный текст без альтернативного акцента.
Правильно: сохранять подчеркивание или другой четкий интерактивный стиль.
Почему: пользователь не понимает, где действие, и теряет сценарий.

Ошибка 4: делать uppercase без letter-spacing

Неправильно: использовать text-transform: uppercase на плотном шрифте без интервала.
Правильно: добавлять letter-spacing и проверять читаемость.
Почему: заглавные символы визуально "склеиваются".

Ошибка 5: не задавать fallback-шрифты

Неправильно: указывать только один кастомный шрифт.
Правильно: писать fallback-цепочку ("Inter", "Segoe UI", Arial, sans-serif).
Почему: при сбое загрузки интерфейс остается стабильным.

Best Practices

  • Задавайте базовые типографические правила в body.
  • Сначала строьте иерархию размерами, потом цветами.
  • Проверяйте длинные тексты, а не только короткие заглушки.
  • Используйте жирность и курсив точечно, по смыслу.
  • Фиксируйте шкалу размеров и интервалов как командный стандарт.

Заключение

Ключевые мысли

🎯 Типографика отвечает за скорость понимания интерфейса.
🎯 Системные правила лучше разовых "косметических" правок.
🎯 Хорошая типографика делает продукт визуально надежным и профессиональным.
Текст в интерфейсе это рабочий инструмент. Когда он настроен правильно, пользователю легче принимать решения и двигаться по сценарию.
🎯

Проверьте знания

Закрепите материал — пройдите тест по теме «CSS: типографика»

Пройти тест →