В библиотеке Vuetify управление межстрочным интервалом тесно связано с системой типографики, встроенной в фреймворк, и с возможностями CSS. Межстрочный интервал (line-height) влияет на читаемость текста, визуальную плотность контента и гармоничное распределение элементов на странице.
Vuetify предоставляет предопределённые классы, которые позволяют быстро управлять размерами текста и межстрочными интервалами без написания дополнительных CSS-правил. Основные классы для текста включают:
text-h1 … text-h6 – заголовки с
соответствующими размерами и базовыми межстрочными интервалами.subtitle-1, subtitle-2 – подзаголовки
среднего уровня.body-1, body-2 – основной текст.Каждый из этих классов автоматически применяет оптимальный
межстрочный интервал, который рассчитывается исходя из высоты
шрифта (font-size) и рекомендаций Material Design.
<p class="body-1">
Это пример текста с использованием класса body-1. Межстрочный интервал уже настроен под оптимальную читаемость.
</p>
<p class="body-2">
Класс body-2 применяет немного меньший шрифт и соответственно другой межстрочный интервал.
</p>
Vuetify 2 и 3 предоставляют CSS-утилиты для управления line-height через классы:
lh-1, lh-2, lh-3 … – задают
стандартные кратные значения межстрочного интервала.lh-sm, lh-md, lh-lg –
обозначают малый, средний и большой интервал соответственно.<p class="body-1 lh-lg">
Этот текст имеет увеличенный межстрочный интервал для улучшенной читаемости.
</p>
<p class="body-2 lh-sm">
Этот текст сжатый, используется там, где нужно разместить больше контента в ограниченном пространстве.
</p>
style и v-bind для динамических значенийДля более гибкого контроля можно использовать встроенный атрибут
style или привязку v-bind:style. Это особенно
полезно, если требуется динамическая настройка межстрочного интервала в
зависимости от состояния компонента.
<template>
<v-container>
<v-row>
<v-col>
<p :style="{ lineHeight: dynamicLineHeight + 'em' }">
Текст с динамически изменяемым межстрочным интервалом
</p>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
data() {
return {
dynamicLineHeight: 1.8
};
}
}
</script>
Межстрочный интервал влияет не только на текстовые блоки, но и на поведение компонентов:
v-btn и
v-card-title – увеличение межстрочного
интервала помогает выравнивать текст внутри кнопок и заголовков
карт.v-list-item – текст с адекватным
интервалом делает списки более читаемыми, особенно при длинных
описаниях.v-data-table – line-height
корректирует вертикальное распределение строк таблицы, улучшая
визуальное восприятие больших наборов данных.Для точной настройки дизайна рекомендуется использовать
межстрочный интервал вместе с отступами (padding и
margin), чтобы обеспечить гармоничное
распределение элементов. Например, для блоков с большим количеством
текста:
<v-card class="pa-4">
<v-card-text class="body-1 lh-lg">
Длинный текст в карточке. Увеличенный межстрочный интервал повышает читаемость и делает блок визуально лёгким.
</v-card-text>
</v-card>
Для глобальной настройки межстрочного интервала можно использовать
переменные SASS Vuetify. В Vuetify 2 они находятся в файле
variables.scss:
$body-line-height: 1.6 !default;
$heading-line-height: 1.25 !default;
Изменяя эти значения, можно контролировать интервалы по всему приложению, сохраняя единый стиль текста и улучшая типографическую консистентность.
body-1, body-2.lh-lg или динамическое значение через
v-bind:style.v-btn,
v-list-item) можно уменьшать интервал с помощью
lh-sm.$body-line-height и $heading-line-height.Эти подходы обеспечивают гибкость и единообразие интерфейса, позволяя точно управлять визуальной структурой текста в приложениях на Vuetify.