Quasar Framework предоставляет гибкую систему работы с CSS-переменными, что позволяет создавать темы, настраивать цвета компонентов и управлять стилями приложения на глобальном и локальном уровнях. CSS-переменные делают дизайн динамичным и легко масштабируемым, особенно при использовании светлых и тёмных тем или кастомных цветовых схем.
В Quasar большинство базовых переменных находятся в файле
variables.scss, который можно подключить через настройки
сборщика или в quasar.config.js. Примеры ключевых
переменных:
$primary: #1976d2;
$secondary: #26a69a;
$accent: #9c27b0;
$dark: #1d1d1d;
Quasar автоматически генерирует соответствующие CSS-переменные для этих SCSS-переменных, которые можно использовать в любом компоненте:
background-color: var(--q-primary);
color: var(--q-secondary);
Важно: переменные с префиксом --q-
являются стандартом Quasar и доступны глобально, что позволяет
единообразно применять цвета и стили в приложении.
Quasar поддерживает систему тем, где глобальные переменные можно
переопределять для светлой и тёмной темы. Конфигурация выполняется в
quasar.config.js:
framework: {
config: {
brand: {
primary: '#1976d2',
secondary: '#26a69a',
accent: '#9c27b0',
dark: '#1d1d1d',
}
}
}
Quasar автоматически создаёт CSS-переменные вида:
:root {
--q-primary: #1976d2;
--q-secondary: #26a69a;
--q-accent: #9c27b0;
--q-dark: #1d1d1d;
}
Для тёмной темы переменные можно динамически менять через
q-dark класс на элементе body:
body.q-dark {
--q-primary: #2196f3;
--q-secondary: #80cbc4;
}
В компонентах Quasar CSS-переменные можно использовать как напрямую в
стилях, так и через style атрибут:
<template>
<q-btn label="Кнопка" :style="{ backgroundColor: 'var(--q-primary)', color: 'var(--q-white)' }" />
</template>
В SCSS файлах компонентов можно комбинировать переменные Quasar с кастомными:
.my-card {
background-color: var(--q-secondary);
border: 1px solid var(--q-accent);
}
Для локальных переменных компонента поддерживается синтаксис:
:root {
--card-padding: 16px;
}
.my-card {
padding: var(--card-padding);
}
Quasar позволяет переключать светлую и тёмную тему на лету. Для этого
достаточно добавить или удалить класс q-dark у тега
body:
this.$q.dark.toggle();
После переключения все CSS-переменные автоматически обновляются, благодаря чему компоненты мгновенно получают новые цвета без перезагрузки страницы.
Для расширенной настройки можно создать свой файл
variables.scss и импортировать его в проект:
@import 'src/css/variables.scss';
body {
background-color: var(--q-background);
color: var(--q-dark);
}
Quasar автоматически поддерживает пересборку переменных при изменении
значений SCSS, что особенно удобно для разработки с горячей
перезагрузкой (hot-reload).
q-dark —
оптимизирует работу с тёмными и светлыми режимами без переписывания
стилей.Пример светлой и тёмной кнопки:
<q-btn
label="Светлая"
class="q-mr-sm"
:style="{ backgroundColor: 'var(--q-primary)', color: 'var(--q-white)' }"
/>
<q-btn
label="Тёмная"
class="q-dark"
:style="{ backgroundColor: 'var(--q-primary)', color: 'var(--q-white)' }"
/>
Пример динамической смены темы для всего приложения:
<template>
<q-page>
<q-btn label="Переключить тему" @click="$q.dark.toggle()" />
</q-page>
</template>
Quasar автоматически применяет новые переменные ко всем компонентам, обеспечивая единообразный внешний вид.
CSS-переменные в Quasar создают мощный инструмент для управления стилями на глобальном и локальном уровне, позволяя легко настраивать цвета, адаптировать темы и создавать динамичные интерфейсы с минимальными усилиями.