В Vuetify компонент v-btn предназначен
для создания кнопок с богатым функционалом и широкими возможностями
кастомизации. Основной синтаксис прост и выглядит следующим образом:
<v-btn>Текст кнопки</v-btn>
Кнопка по умолчанию имеет стандартный стиль и минимальное оформление, но может быть модифицирована с помощью различных пропсов, классов и цветовых тем.
Vuetify предлагает несколько визуальных вариантов кнопок:
Text button
<v-btn text>Текстовая кнопка</v-btn>
Contained button
<v-btn elevated>Поднятая кнопка</v-btn>
<v-btn>Обычная кнопка</v-btn>
Outlined button
<v-btn outlined>Контурная кнопка</v-btn>
Icon button
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
Компонент v-btn поддерживает цветовые
темы Vuetify, что позволяет легко интегрировать кнопки в
существующую палитру приложения:
<v-btn color="primary">Primary</v-btn>
<v-btn color="secondary">Secondary</v-btn>
<v-btn color="success">Success</v-btn>
<v-btn color="error">Error</v-btn>
color может быть задан как стандартной темой
(primary, secondary), так и произвольным
цветом.dark и light
пропсы:<v-btn color="primary" dark>Темная кнопка</v-btn>
Кнопки могут изменять размер и форму для адаптации под разные интерфейсы:
<v-btn small>Small</v-btn>
<v-btn large>Large</v-btn>
<v-btn rounded>Закругленная</v-btn>
<v-btn tile>Прямоугольная без скруглений</v-btn>
small, default, large —
задают высоту и ширину кнопки.rounded и tile управляют скруглением
углов.Для управления состоянием кнопок используются следующие пропсы:
<v-btn disabled>Неактивная</v-btn>
Блокирует возможность нажатия и визуально выделяет кнопку как неактивную.
<v-btn :loading="true">Загрузка</v-btn>
Добавляет индикатор загрузки внутри кнопки. В сочетании с
disabled предотвращает повторные действия.
<v-btn depressed>Плоская</v-btn>
Убирает приподнятость кнопки, делая её плоской, но с сохранением цвета.
Кнопка может реагировать на стандартные события Vue:
<v-btn @click="handleClick">Нажать</v-btn>
@click — основной способ обработки клика.@mouseover,
@mousedown и другие DOM-события.Кнопки могут содержать иконки перед текстом, после текста или только иконку:
<v-btn icon>
<v-icon>mdi-menu</v-icon>
</v-btn>
<v-btn>
<v-icon left>mdi-pencil</v-icon>
Редактировать
</v-btn>
<v-btn>
Сохранить
<v-icon right>mdi-check</v-icon>
</v-btn>
left и right управляют
расположением иконки относительно текста.Для расширенной кастомизации можно использовать CSS-классы Vuetify и собственные стили:
<v-btn class="ma-2" color="pink" dark>Кастомная кнопка</v-btn>
ma-2 — margin вокруг кнопки.pa-3 — padding внутри кнопки.<v-btn color="success" outlined rounded @click="submitForm" :loading="isSubmitting">
<v-icon left>mdi-send</v-icon>
Отправить
</v-btn>
<v-btn icon color="error" @click="deleteItem">
<v-icon>mdi-delete</v-icon>
</v-btn>
v-btn является гибким компонентом, позволяя создавать
кнопки любого типа: от простых текстовых до интерактивных с загрузкой и
иконками, полностью соответствующих стандартам Material Design.