В Vuetify управление пространством вокруг компонентов реализуется через систему утилитных классов для отступов (margin) и внутренних отступов (padding). Эти классы обеспечивают быстрый и гибкий способ задания размеров без необходимости писать отдельные CSS-правила.
Классы имеют стандартный формат:
{property}{sides}-{size}
где:
property – тип отступа:
m — margin (внешний отступ)p — padding (внутренний отступ)sides — сторона или направление:
t — top (верх)b — bottom (низ)l — left (лево)r — right (право)x — горизонтальная ось (left + right)y — вертикальная ось (top + bottom)size — величина отступа, числовое значение от 0
до 12. Каждое значение соответствует шагу сетки, где
1 ≈ 4px по умолчанию (в зависимости от темы),
2 ≈ 8px и так далее.
Примеры:
mt-4 — верхний margin 16pxpx-2 — горизонтальный padding 8pxm-0 — убирает все внешние отступыМожно комбинировать несколько классов одновременно для разных направлений:
<v-card class="mt-4 mb-2 px-3 py-5">
Содержимое карточки с верхним и нижним margin, горизонтальным и вертикальным padding
</v-card>
Рекомендация: использовать краткие классы
x и y, чтобы сократить запись и сохранить
читаемость кода.
Vuetify поддерживает отрицательные margin, что полезно для выравнивания компонентов или перекрытия:
-m-1 — отрицательный margin 4px-mt-3 — отрицательный верхний margin 12pxОтрицательные паддинги не поддерживаются — это ограничение CSS.
Для горизонтального центрирования компонентов применяется класс
mx-auto:
<v-btn class="mx-auto">Кнопка по центру</v-btn>
Это эквивалентно CSS:
margin-left: auto;
margin-right: auto;
Также возможна вертикальная автоматизация через flex-контейнеры.
Vuetify предоставляет адаптивные версии классов, которые меняют величину отступа в зависимости от размера экрана:
{property}{sides}-{breakpoint}-{size}
sm, md,
lg, xlp-md-6 — padding 24px на устройствах medium и
вышеЭто позволяет создавать отзывчивые интерфейсы без написания кастомного CSS.
<v-container>
<v-row>
<v-col cols="12" class="p-2 p-md-6">
Контент с адаптивными паддингами
</v-col>
</v-row>
</v-container>
mb- помогает организовать вертикальные отступы между
полями.<v-form>
<v-text-field label="Имя" class="mb-4"></v-text-field>
<v-text-field label="Email" class="mb-4"></v-text-field>
<v-btn class="mt-2">Отправить</v-btn>
</v-form>
mt-3) переопределяет общий
(m-2).Vuetify утилитные классы не мешают обычному CSS:
<v-card class="pa-4 my-2" style="background-color: #f5f5f5;">
Контент с паддингом и margin, кастомный фон через style
</v-card>
Можно использовать миксование классов Vuetify и собственных правил для расширенной кастомизации интерфейса.
Эта система утилитных классов позволяет создавать аккуратные, отзывчивые и легко поддерживаемые интерфейсы, полностью используя потенциал Vuetify без необходимости прописывать сложный CSS.