CSS и управление типографикой

Современный CSS предоставляет богатый набор инструментов для управления всеми аспектами типографики. Ключевые свойства:

CSS-свойствоНазначениеРекомендуемые значения
font-sizeКегль шрифта16px–18px для тела; используйте rem
line-heightИнтерлиньяж1.4–1.6 для тела текста (unitless)
letter-spacingТрекинг0 для тела; 0.05–0.15em для CAPS
font-weightНасыщенность400 (regular), 600 (semibold), 700 (bold)
font-optical-sizingОптический размерauto для переменных шрифтов
text-renderingКачество рендерингаoptimizeLegibility
-webkit-font-smoothingСглаживание (macOS)antialiased
max-width (текст)Длина строки60–75ch для тела, 45ch для узких колонок

Адаптивная типографика

Адаптивная типографика означает автоматическое изменение типографических параметров в зависимости от размера вьюпорта. Современный CSS предлагает два основных подхода:

Viewport units + clamp()

Функция clamp(min, preferred, max) позволяет задать плавно масштабируемый размер шрифта с ограничениями. Пример:

font-size: clamp(1rem, 2.5vw, 1.5rem);

Это означает: минимальный размер 16px, максимальный 24px, плавно масштабируется между ними в зависимости от ширины экрана. Такой подход устраняет необходимость в большинстве медиазапросов для типографики.

CSS Container Queries

Новая спецификация Container Queries позволяет масштабировать типографику в зависимости от размера родительского контейнера, а не вьюпорта — что критически важно для компонентных систем и дизайн-систем.

Скриншот редактора кода с CSS-правилами для адаптивной типографики: функция clamp, переменные шрифты, пользовательские CSS-переменные на тёмном фоне редактора

Веб-шрифты: форматы и загрузка

Основной современный формат веб-шрифтов — WOFF2. Он обеспечивает наилучшее соотношение качества и размера файла, поддерживается всеми актуальными браузерами. WOFF (без «2») — запасной вариант для устаревших браузеров.

Оптимизация загрузки шрифтов

  • font-display: swap — текст отображается системным шрифтом до загрузки веб-шрифта, предотвращая FOIT (Flash of Invisible Text)
  • Preload — предзагрузка критически важных шрифтовых файлов через <link rel="preload">
  • Subsetting — подмножество символов: включать только необходимые Unicode-диапазоны (латиница, кириллица, базовые знаки препинания)
  • Variable fonts — один файл заменяет несколько начертаний, что снижает общий объём загрузки при использовании трёх и более вариантов насыщенности

Google Fonts и open-source экосистема

Google Fonts (fonts.google.com) предоставляет бесплатный доступ к более чем 1400 гарнитурам, включая высококачественные кириллические шрифты. Для русскоязычных проектов рекомендуемые гарнитуры из каталога:

  • Inter — универсальный гротеск, оптимизированный для интерфейсов, отличная кириллица
  • Playfair Display — элегантная антиква с высоким контрастом, подходит для заголовков
  • Nunito / Nunito Sans — мягкий гуманистический гротеск, скруглённые окончания
  • Literata — книжная антиква Google, разработанная специально для длинного чтения
  • Manrope — современный геометрический гротеск с полной кириллицей

Системные шрифтовые стеки

Для максимальной производительности и нативного ощущения многие проекты используют системные шрифтовые стеки — они не требуют загрузки и идеально согласованы с интерфейсом операционной системы:

font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;

«В вебе шрифт — это первый байт опыта. До того, как пользователь прочтёт слово, он уже почувствовал интерфейс — через время загрузки, рендеринг и качество символов.»

— Зак Левен, разработчик, Google Fonts
Инструменты → Современные тренды