Веб-функции:
font-size
rem
em unit
line-height
overflow-wrap
text-wrap
text-wrap: balance
text-wrap: pretty
min(), max() и clamp()
Viewport units
Общие рекомендации
- Используйте для
line-heightчисла без единиц измерения (например,1.5), чтобы обеспечить относительное масштабирование при наследовании размера шрифта. - Используйте
overflow-wrap: break-word(илиanywhere), чтобы размещать длинные URL. - НЕ используйте
pxдля размера шрифта. Используйтеrem, чтобы учитывать настройки размера шрифта в браузере пользователя (размер шрифта корневого элемента), илиem/проценты для контекстного размера.
Легкость чтения
- Избегайте длинных строк текста. Ограничьте ширину абзацев до 80 символов.
- Избегайте пробельных коридоров. Не используйте
text-align: justify, так как это может затруднить чтение текста. Если вы все же хотите его использовать, добавьтеhyphens: auto, чтобы между словами не было слишком много пустого пространства. - Не используйте декоративные шрифты. Не используйте курсив для основного текста.
- Не используйте все заглавные буквы для выделения. Для визуального выделения лучше использовать полужирный шрифт, а для смыслового – теги
<em>/<strong>. - Не злоупотребляйте выделением. Если выделять слишком много слов, это потеряет смысл. Выделяйте только то, что действительно важно.
- Поддержка пользовательских настроек масштабирования. Позвольте пользователям увеличивать размер текста до 200% без потери контента или функциональности.
body {
line-height: 1.5;
text-align: start; /* Supports LTR and RTL */
}
article {
max-width: 80ch; /* Caps line length to ~80 characters for readability */
}
Перенос текста
- Используйте
text-wrap: balanceдля сбалансированных заголовков и похожего контента (например,<th>). - Используйте
text-wrap: prettyдля длинного основного текста (абзацев, цитат и т. д.). - Используйте
text-wrap: balanceилиtext-wrap: prettyтолько при необходимости. НЕ применяйте их к*, так как это может снизить производительность. - Не используйте
text-wrap: balanceдля элементов с видимым полем (фоны, границы, тени и т. д.), поскольку это не меняет ширину контейнера, а влияет только на перенос текста внутри этой ширины. В результате в конце контейнера может остаться пустое пространство, что обычно нежелательно.
Адаптивная типографика
- РЕКОМЕНДУЕТСЯ комбинировать в
clamp()единицы, зависящие от области просмотра и шрифта, чтобы размер шрифта масштабировался в соответствии с размером области просмотра, но оставался в желаемом диапазоне. напримерclamp(2rem, 1rem + 5vw, 4rem). Отрегулируйте соотношение единиц измерения, связанных с областью просмотра и шрифтом, чтобы контролировать скорость изменения размера шрифта. - НЕ используйте
vwдля размера шрифта безclamp(), так как на некоторых экранах текст может быть слишком маленьким или слишком большим.