Компонент v-sheet в библиотеке Vuetify
служит базовым строительным блоком для создания контейнеров с фоновыми
цветами, тенями и скруглениями. Он представляет собой обертку над
стандартным <div>, но обеспечивает интеграцию с
темингом Vuetify и системой стилей Material Design.
Ключевые свойства v-sheet:
elevation — задаёт глубину тени. Принимает числовые
значения от 0 до 24.rounded — управляет скруглением углов. Может быть
булевым (true/false), числовым (4,
8, 16) или строковым ("lg",
"xl").color — задаёт фон. Может использоваться любой цвет из
палитры Vuetify или кастомный CSS.outlined — делает рамку вокруг компонента вместо
фона.tile — отключает скругление углов.max-width и max-height — ограничения
размеров.height и width — явные размеры
компонента.<v-sheet color="primary" elevation="4" rounded="lg" width="300" height="200">
Контент внутри v-sheet
</v-sheet>
v-sheet поддерживает как фиксированные
цвета, так и динамические темы. Для интеграции с темой используется
color="primary" или color="secondary". Для
прозрачных листов можно использовать color="transparent"
или elevation="0" для полностью плоского вида.
<v-sheet color="transparent" elevation="0">
Прозрачный лист без тени
</v-sheet>
Для градиентов и нестандартных цветов можно использовать CSS-классы
или атрибут style:
<v-sheet style="background: linear-gradient(to right, #ff8a65, #ff7043);">
Градиентный фон
</v-sheet>
Свойство elevation управляет визуальной глубиной через
тени Material Design.
elevation="0" — плоский лист без тени.elevation="1-3" — лёгкая тень, подходит для карт и
панелей.elevation="4-8" — средняя тень, используется для
выделения.elevation="9-24" — глубокие тени для всплывающих
элементов.<v-sheet elevation="12" color="secondary" rounded>
Лист с сильной тенью
</v-sheet>
Скругления управляются через свойство rounded.
true применяет стандартное скругление
из темы.false или tile отключают скругления."sm", "md",
"lg", "xl") соответствуют предустановкам
Material Design.<v-sheet rounded="xl" color="pink lighten-4">
Лист с крупными скругленными углами
</v-sheet>
Использование outlined позволяет создавать листы с
рамкой вместо сплошного фона. Это удобно для карточек с прозрачным
контентом.
<v-sheet outlined rounded="md" width="250" height="150">
Лист с обводкой вместо фона
</v-sheet>
Комбинация outlined и elevation создаёт
интересные визуальные эффекты:
<v-sheet outlined elevation="2" color="white">
Лист с лёгкой тенью и рамкой
</v-sheet>
v-sheet можно вкладывать друг в друга,
создавая комплексные карточки, панели и модальные окна. Вложенные листы
наследуют базовые свойства, но могут иметь собственные настройки цвета,
тени и скругления.
<v-sheet color="grey lighten-3" rounded="lg" elevation="4" width="400" height="300">
<v-sheet color="white" rounded="md" elevation="2" style="margin: 16px; padding: 16px;">
Внутренний лист с контентом
</v-sheet>
</v-sheet>
v-sheet идеально интегрируется с системами расположения
Vuetify (v-row, v-col,
v-container) благодаря своей блочной природе. Он может
служить контейнером для flex или grid элементов, задавая визуальное
выделение:
<v-row>
<v-col cols="4">
<v-sheet color="blue lighten-3" rounded elevation="6" height="150">
Лист 1
</v-sheet>
</v-col>
<v-col cols="4">
<v-sheet color="green lighten-3" rounded elevation="6" height="150">
Лист 2
</v-sheet>
</v-col>
</v-row>
Для динамических интерфейсов можно комбинировать v-sheet
с transition-компонентами Vuetify (v-fade-transition,
v-scale-transition) или с v-hover для
интерактивного изменения стиля.
<v-hover v-slot="{ hover }">
<v-sheet :elevation="hover ? 12 : 4" color="deep-purple lighten-4" rounded>
Наведи курсор, чтобы увеличить тень
</v-sheet>
</v-hover>
v-sheet является универсальным
строительным блоком в Vuetify, объединяющим возможности цвета, тени,
скругления и гибкого расположения. Он может использоваться для карточек,
модальных окон, панелей, фонов и вложенных контейнеров. Гибкость
настроек и полная интеграция с темингом Material Design делают его
незаменимым компонентом при создании визуально богатых интерфейсов.
Ключевые практики работы с v-sheet:
elevation для визуального выделения.rounded или tile).outlined.Эта структура позволяет создавать как простые контейнеры, так и сложные визуальные элементы без дополнительных CSS-классов.