Quasar предоставляет гибкий механизм настройки внешнего вида приложения через SASS переменные, что позволяет полностью контролировать цвета, отступы, шрифты и другие элементы интерфейса без прямого изменения компонентов. Использование SASS переменных является ключевым инструментом при создании темной и светлой темы, кастомных цветовых схем и адаптации интерфейса под брендовые требования.
Quasar использует SASS/SCSS как основной препроцессор стилей. Для работы с SASS переменными необходимо убедиться, что проект настроен на поддержку SCSS. В стандартном проекте Quasar это выполняется автоматически, но можно проверить наличие пакета:
npm install -D sass sass-loader
В quasar.config.js в разделе css
указываются файлы SCSS для глобального подключения:
css: [
'app.scss'
]
Файл app.scss может содержать переопределение
переменных, импорт стандартных переменных Quasar и кастомные
настройки:
@import 'quasar/src/css/variables.sass';
$primary: #1e88e5;
$secondary: #ff4081;
Quasar структурирует SASS переменные по нескольким группам:
Цвета Основные переменные для цветов:
$primary, $secondary, $accent
— ключевые цвета темы.$positive, $negative, $info,
$warning — системные цвета уведомлений и состояния.$dark и $light — базовые цвета фона для
темных и светлых тем.Типографика Управление шрифтами и размерами текста:
$font-family$font-size-root$heading-font-weight$body-line-heightОтступы и размеры Контроль над базовыми интервалами и размерами элементов:
$border-radius$padding-xs, $padding-sm,
$padding-md, $padding-lg$margin-xs, $margin-sm,
$margin-md, $margin-lgТени и границы Настройка визуальной глубины элементов:
$box-shadow-1, $box-shadow-2,
$box-shadow-3$border-width$border-colorТемизация компонентов Переменные для компонентов Quasar:
q-btn использует $btn-padding,
$btn-border-radius, $btn-colorq-card использует $card-padding,
$card-bg-color, $card-border-radiusQuasar поддерживает динамическое переключение тем, используя отдельные наборы SASS переменных. Например:
// Светлая тема
$primary: #1976d2;
$secondary: #ff4081;
$background: #ffffff;
// Темная тема
$dark-primary: #2196f3;
$dark-secondary: #ff79b0;
$dark-background: #121212;
В quasar.config.js подключение темы осуществляется
через:
framework: {
config: {
dark: 'auto', // 'auto', true, false
}
}
Далее приложение может динамически менять тему через API:
import { Dark } from 'quasar';
Dark.set(true); // Включение темной темы
Dark.toggle(); // Переключение
Каждый компонент Quasar имеет набор SASS переменных, которые можно переопределять глобально. Например, для кнопок:
$btn-padding: 0.75rem 1.5rem;
$btn-border-radius: 12px;
$btn-font-size: 16px;
$btn-primary-color: #1e88e5;
Эти переменные автоматически применяются ко всем кнопкам в приложении
без необходимости вручную менять стили каждого экземпляра
q-btn.
Для карточек:
$card-padding: 1rem;
$card-border-radius: 16px;
$card-bg-color: #f5f5f5;
Рекомендуется создавать отдельные файлы для переменных и импортировать их в основной SCSS файл:
src/css/
├─ variables/
│ ├─ colors.scss
│ ├─ typography.scss
│ └─ components.scss
└─ app.scss
В app.scss:
@import './variables/colors.scss';
@import './variables/typography.scss';
@import './variables/components.scss';
Такой подход облегчает поддержку проекта, упрощает масштабирование и внедрение новых тем.
Quasar предоставляет набор SASS миксинов для работы с цветами и границами:
color-variant($color, $modifier) — генерация
оттенков.rgba($color, $alpha) — прозрачность цвета.shadow($level) — добавление стандартной тени.Пример использования:
.btn-custom {
background-color: color-variant($primary, -10%);
box-shadow: shadow(2);
}
Dark API.SASS переменные Quasar позволяют создать унифицированный визуальный язык приложения и минимизируют необходимость прямого вмешательства в CSS компонентов, обеспечивая гибкую и масштабируемую темизацию.