FAB (Floating Action Button) — это плавающая кнопка
действия, которая используется для выделения основного действия на
странице. В Vuetify FAB реализуются с помощью компонента
<v-btn> с атрибутом fab. Эти кнопки
могут быть круглыми, иметь иконки, а также расширяться в Speed
Dial для нескольких действий.
<v-btn fab color="primary">
<v-icon>mdi-plus</v-icon>
</v-btn>
Разбор:
fab — задаёт форму кнопки как круг.color — определяет основной цвет кнопки.<v-icon> — внутри кнопки отображается иконка (в
Vuetify используется библиотека Material Design Icons).Vuetify поддерживает несколько размеров FAB через пропсы
small, medium, large:
<v-btn fab small color="secondary">
<v-icon>mdi-pencil</v-icon>
</v-btn>
<v-btn fab color="success">
<v-icon>mdi-check</v-icon>
</v-btn>
<v-btn fab large color="error">
<v-icon>mdi-close</v-icon>
</v-btn>
Особенности размеров:
small — компактная версия, подходит для панелей
инструментов.medium — стандартная кнопка.large — привлекает внимание, используется для основных
действий.Для плавающей кнопки часто нужно закрепление в углу экрана. Vuetify предоставляет классы утилиты:
<v-btn fab color="pink" class="ma-4" fixed bottom right>
<v-icon>mdi-message</v-icon>
</v-btn>
Пояснения:
fixed — фиксирует кнопку относительно окна
браузера.bottom / top, left /
right — определяют расположение.ma-4 — задаёт внешний отступ (margin).Speed Dial позволяет раскрывать несколько действий
из одной FAB. Компонент <v-speed-dial> объединяет
основную кнопку и дополнительные действия.
<v-speed-dial v-model="fab" bottom right direction="up" open-on-hover>
<template #activator>
<v-btn fab color="deep-purple" dark>
<v-icon>{{ fab ? 'mdi-close' : 'mdi-plus' }}</v-icon>
</v-btn>
</template>
<v-btn fab small color="red">
<v-icon>mdi-pencil</v-icon>
</v-btn>
<v-btn fab small color="green">
<v-icon>mdi-check</v-icon>
</v-btn>
<v-btn fab small color="blue">
<v-icon>mdi-email</v-icon>
</v-btn>
</v-speed-dial>
Разбор ключевых моментов:
v-model="fab" — управляет состоянием
открытия/закрытия.direction="up" — определяет направление раскрытия
кнопок.open-on-hover — раскрытие при наведении.#activator, что позволяет
полностью кастомизировать основную кнопку.Иногда FAB включает текст или лейбл. Для этого используется
комбинация v-btn fab с v-tooltip:
<v-tooltip bottom>
<template #activator="{ props }">
<v-btn fab color="orange" v-bind="props">
<v-icon>mdi-plus</v-icon>
</v-btn>
</template>
<span>Добавить новый элемент</span>
</v-tooltip>
Пояснения:
v-tooltip создаёт подсказку при наведении.props из слота activator обязательно передаются на
кнопку для корректной работы.Vuetify позволяет настраивать FAB через стандартные пропсы и CSS классы:
dark / light — изменяет тему кнопки.elevation — задаёт тень кнопки
(elevation="12").outlined — делает кнопку с обводкой.rounded — позволяет менять форму от стандартного круга
до более мягкого овала.<v-btn fab color="cyan" dark elevation="12">
<v-icon>mdi-star</v-icon>
</v-btn>
Vuetify поддерживает анимацию при изменении состояния FAB. Например, при раскрытии Speed Dial кнопки можно анимировать через transition:
<v-btn fab color="purple" v-bind:transition="fade-transition">
<v-icon>mdi-menu</v-icon>
</v-btn>
transition — можно использовать встроенные Vuetify
переходы: fade-transition, scale-transition,
slide-x-transition, slide-y-transition.FAB в Vuetify — это мощный инструмент интерфейса, который сочетает компактность, наглядность и гибкость кастомизации. Через комбинацию размеров, цветов, и расширений можно создавать как минималистичные кнопки, так и интерактивные панели действий для сложных интерфейсов.