Quasar Framework开箱即可提供多种颜色选择。 您可以在CSS代码中将它们用作Stylus变量,或者直接在HTML模板中将它们用作CSS类。
品牌(Brand)颜色
Quasar组件使用的大多数颜色都与这三种颜色紧密相连,您可以更改这些颜色。 选择这些颜色是区分自己的应用程序设计时应采取的第一步。 当更改的默认值时,您会立即注意到Quasar组件遵循这些颜色作为指导。
提示
- 还要查阅主题生成器 ,以获取有关自定义您的网站/应用品牌颜色的工具。
- 在Quasar v1.3中添加了
dark
。
颜色列表
以下是开箱即用的颜色列表。 在应用程序的* .vue文件中,您可以将它们用作CSS类(在HTML模板中)或作为Stylus变量(在<style lang =“stylus”>
标签中)。
使用CSS类
使用text-
或bg-
前缀作为类名来改变文本的颜色或背景的颜色。
<!-- 更改文字颜色 -->
<p class="text-primary">....</p>
<!-- 改变背景色 -->
<p class="bg-positive">...</p>
使用Sass/SCSS/Stylus变量
在应用程序的*.vue
文件中,可以使用$primary
,$red-1
等颜色。请注意,对于Sass/SCSS,您将需要“@quasar/app” v1.1.0 +和Quasar v1.1.1 +。
<!-- 注意lang="sass" -->
<style lang="sass">
div
color: $red-1
background-color: $grey-5
</style>
<!-- 注意lang="scss" -->
<style lang="scss">
div {
color: $red-1;
background-color: $grey-5;
}
</style>
<!-- 注意lang="stylus" -->
<style lang="stylus">
div
color $red-1
background-color $grey-5
</style>
添加自己的颜色
如果您想为自己的组件使用自己的颜色(假设我们要添加一种名为“ brand”的颜色),您要做的就是将以下CSS添加到您的应用中:
.text-brand {
color: #a2aa33;
}
.bg-brand {
background: #a2aa33;
}
现在我们可以将这种颜色用于Quasar组件:
<q-btn color="brand" ... />
从v1.10+开始,您可以使用getPaletteColor实用程序在JS上下文中访问得到自定义颜色值(十六进制字符串)。
品牌(Brand)颜色的动态变化(动态主题颜色)
WARNING
这仅在支持CSS变量的浏览器(自定义属性)上受支持。 它不会在IE11上工作,但它会恢复到CSS主题中的品牌颜色。
您可以在运行时动态定制品牌颜色: primary
, secondary
, accent
, dark
, positive
, negative
, info
, warning
。这意味着您可以使用默认颜色主题构建应用程序的一个构建版本,但显示时使用运行时所选的一个。
主要颜色配置使用存储在根元素(:root
)中的CSS自定义属性完成。每个属性的名称都是--q-color-${name}
(例如:--q-color-primary
,--q-color-secondary
),并且应该具有有效的CSS颜色作为值。
CSS自定义属性使用与普通CSS相同的继承规则,因此只能重新定义所需的颜色,其余的将从父元素继承。
推荐的工作流程是在html
(document.documentElement
)或body
(document.body
)元素上设置自定义的颜色属性。这将允许您通过删除自定义颜色来恢复为默认颜色。
在MDN上获取有关CSS自定义属性(变量)的更多信息。
辅助方法 - setBrand
WARNING
未被IE11支持
在colors
实用程序中,Quasar提供了一个辅助方法用于设置自定义颜色:setBrand(colorName,colorValue[,element])
参数 | 类型 | 必需 | 说明 |
---|---|---|---|
colorName | 字符串 | 是 | primary , secondary , accent , dark , positive , negative , info , warning 之一 |
colorValue | 字符串 | 是 | 有效的CSS颜色值 |
element | 元素 | - | (默认:document.body )设置自定义属性的元素。 |
使用辅助方法设置品牌颜色的示例:
import { colors } from 'quasar'
colors.setBrand('light', '#DDD')
colors.setBrand('primary', '#33F')
colors.setBrand('primary', '#F33', document.getElementById('rebranded-section-id'))
使用辅助方法设置品牌颜色的示例:
// equivalent of colors.setBrand('primary') in raw Javascript:
document.body.style.setProperty('--q-color-primary', '#0273d4')
辅助方法 - getBrand
WARNING
未被IE11支持
在colors
实用程序中,Quasar提供了一个辅助方法,用于获取设置的自定义颜色:getBrand(colorName [,element])
参数 | 类型 | 必需 | 说明 |
---|---|---|---|
colorName | 字符串 | 是 | primary , secondary , accent , dark , positive , negative , info , warning 之一 |
element | 元素 | - | (默认值:document.body )将读取自定义属性的元素。 |
使用辅助方法获取自定义颜色的示例:
import { colors } from 'quasar'
colors.getBrand('primary') // '#33F'
colors.getBrand('primary', document.getElementById('rebranded-section-id'))
这个辅助方法所做的就是包装原始Javascript的getPropertyValue()
方法以方便使用。 这是一个等效的原始Javascript示例:
// 等同于原始Javascript中的colors.getBrand('primary'):
getComputedStyle(document.documentElement)
.getPropertyValue('--q-color-primary') // #0273d4
设置默认值
WARNING
未被IE11支持
如果您希望设置一些品牌颜色而不破坏Stylus变量,则可以在quasar.conf.js中进行设置:
// quasar.conf.js
return {
framework: {
config: {
brand: {
primary: '#ff0000',
// ...
}
}
}
}
这在使用Quasar UMD版本时特别有用,在该版本中,将全局quasarConfig
对象放置在Quasar脚本标记之前。
// for Quasar UMD
<script>
// 可选
window.quasarConfig = {
brand: {
primary: '#ff0000',
// ...
}
}
</script>