Библиотека Quasar предоставляет мощный набор утилит для работы с цветами, которые позволяют легко управлять палитрой, создавать динамическую цветовую схему и интегрировать цвета в компоненты приложения. В Quasar цвета представлены в виде CSS-переменных, поддерживаются стандартные названия цветов, а также расширенные возможности их модификации.
Quasar предлагает базовую палитру цветов, включающую
такие группы, как primary, secondary,
accent, positive, negative,
info и warning. Каждый цвет имеет несколько
оттенков, например:
this.$q.colors.getBrand('primary') // возвращает основной цвет primary
this.$q.colors.getBrand('secondary', 'darken-2') // возвращает затемненный оттенок secondary
getBrand(name: string, shade?: string) — основной метод
для получения цветов бренда.shade может принимать значения:
'lighten-1', 'lighten-2',
'darken-1', 'darken-2' и т.д.Эти цвета используются в компонентах через классы CSS, динамическое применение через JS или inline-стили.
Quasar автоматически создает CSS-переменные для всех брендов и их оттенков:
background-color: var(--q-color-primary);
color: var(--q-color-secondary);
Также поддерживаются специальные переменные для состояния компонентов:
--q-color-positive--q-color-negative--q-color-info--q-color-warningИспользование переменных обеспечивает единообразие и упрощает поддержку темной и светлой темы.
Quasar содержит набор утилит для работы с цветами, которые позволяют программно изменять оттенок, прозрачность и контрастность. Основные функции:
this.$q.colors.brightness('primary', 30) // увеличивает яркость primary на 30%
this.$q.colors.fade('primary', 0.5) // делает цвет primary прозрачным на 50%
this.$q.colors.darken('secondary', 2) // затемняет secondary на 2 шага
this.$q.colors.lighten('accent', 1) // осветляет accent на 1 шаг
Эти функции возвращают строку в формате rgba или
hex, что позволяет использовать их в стиле компонентов
напрямую.
Для гибкой работы с цветами важно уметь конвертировать форматы и проверять их корректность:
this.$q.colors.hexToRgb('#ff0000') // { r: 255, g: 0, b: 0 }
this.$q.colors.hexToHsl('#ff0000') // { h: 0, s: 100, l: 50 }
this.$q.colors.rgbToHex(255, 0, 0) // '#ff0000'
this.$q.colors.rgbToHsl(255, 0, 0) // { h: 0, s: 100, l: 50 }
this.$q.colors.isColor('#ff0000') // true
this.$q.colors.isColor('invalid') // false
Quasar позволяет применять цвета динамически через объекты JS, что особенно удобно для темизации или кастомных компонентов:
<template>
<div :style="{ backgroundColor: dynamicColor }">Цветной блок</div>
</template>
<script>
export default {
data() {
return {
dynamicColor: this.$q.colors.getBrand('primary')
}
}
}
</script>
Для реактивного изменения цветов можно комбинировать с computed свойствами:
computed: {
accentColor() {
return this.$q.colors.lighten('accent', 2)
}
}
Quasar поддерживает темную и светлую тему, и утилиты цветов интегрируются с этим механизмом. При смене темы динамически изменяются значения переменных:
this.$q.dark.set(true) // переключение на темную тему
console.log(this.$q.colors.getBrand('primary')) // автоматически подстроенный оттенок для темной темы
С помощью утилит можно создавать настраиваемые палитры для тем, используя существующие функции осветления, затемнения и прозрачности.
hover,
active, disabled).Эта система обеспечивает полную гибкость в управлении цветом, минимизирует ручную работу с палитрой и позволяет создавать профессионально выглядящие интерфейсы с минимальными усилиями.