Кнопки в Quasar представлены компонентом QBtn, который
является универсальным инструментом для создания интерактивных элементов
управления. Он поддерживает различные типы, состояния, стили и
поведение, позволяя реализовать как простые действия, так и сложные
пользовательские сценарии.
Минимальное использование:
<q-btn label="Нажми меня" />
Кнопка по умолчанию уже имеет базовую стилизацию и реакцию на взаимодействие.
Используется для стандартных действий:
<q-btn label="Сохранить" color="primary" />
Ключевые свойства:
label — текст кнопкиcolor — цвет из палитры QuasarНе имеет фона, используется для второстепенных действий:
<q-btn label="Отмена" flat />
Особенности:
Имеет рамку без заливки:
<q-btn label="Подробнее" outline color="primary" />
Подходит для:
По умолчанию кнопки имеют небольшую тень. Для управления этим поведением:
<q-btn label="Подтвердить" unelevated />
unelevated — убирает тень<q-btn icon="favorite" color="red" />
С текстом:
<q-btn icon="save" label="Сохранить" />
Расположение иконки:
<q-btn label="Далее" icon-right="arrow_forward" />
<q-btn round icon="add" color="primary" />
Особенности:
<q-btn square label="A" />
Убирает скругления углов.
<q-btn label="Перейти" to="/home" />
Или внешняя ссылка:
<q-btn label="Открыть сайт" href="https://example.com" target="_blank" />
Quasar использует встроенную палитру:
<q-btn color="primary" />
<q-btn color="secondary" />
<q-btn color="accent" />
<q-btn color="negative" />
<q-btn color="positive" />
Текст можно окрасить отдельно:
<q-btn color="white" text-color="black" label="Контраст" />
Через классы:
<q-btn class="bg-gradient text-white" label="Градиент" />
Или inline:
<q-btn style="background: linear-gradient(to right, red, blue);" />
<q-btn size="xs" />
<q-btn size="sm" />
<q-btn size="md" />
<q-btn size="lg" />
<q-btn size="xl" />
Также можно задавать через CSS:
<q-btn style="font-size: 20px; padding: 10px 20px;" />
<q-btn dense label="Компактная" />
Уменьшает отступы и высоту кнопки.
<q-btn label="На всю ширину" class="full-width" />
<q-btn label="Недоступно" disable />
<q-btn label="Загрузка" loading />
С кастомным индикатором:
<q-btn loading>
<template v-slot:loading>
<q-spinner-hourglass />
</template>
</q-btn>
<q-btn :active="isActive" label="Активно" />
Компонент QBtnGroup:
<q-btn-group>
<q-btn label="Левый" />
<q-btn label="Центр" />
<q-btn label="Правый" />
</q-btn-group>
Особенности:
Использование toggle:
<q-btn-toggle
v-model="model"
:options="[
{ label: 'Да', value: true },
{ label: 'Нет', value: false }
]"
/>
Позволяет реализовать:
<q-btn label="Меню">
<q-menu>
<q-list>
<q-item clickable v-close-popup>
<q-item-section>Пункт 1</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
Плавающая кнопка действия:
<q-btn fab icon="add" color="primary" />
С расширением:
<q-fab icon="menu" direction="up">
<q-fab-action icon="add" />
<q-fab-action icon="edit" />
</q-fab>
<q-btn label="Клик" @click="handleClick" />
Поддерживаются все стандартные события:
@click@mousedown@mouseup@keyupПример кастомной темы:
.my-btn {
border-radius: 12px;
text-transform: uppercase;
}
<q-btn class="my-btn" label="Стиль" />
Использование слотов:
<q-btn>
<q-icon name="star" />
<span>Избранное</span>
</q-btn>
Quasar автоматически добавляет:
Дополнительно:
<q-btn aria-label="Закрыть" icon="close" />
<q-btn color="positive" icon="check" label="Подтвердить" />
<q-btn color="negative" icon="delete" flat />
<q-btn flat dense icon="more_vert" />
flat снижает визуальный весoutline делает действие вторичнымcolor задаёт приоритетloading предотвращает повторные действияdisable исключает ошибочные кликиГрамотное комбинирование типов и стилей кнопок формирует понятный и предсказуемый интерфейс, где визуальная иерархия напрямую отражает логику взаимодействия.