为什么捐赠
API 浏览器
联系站长
颜色调色板

Quasar 提供了丰富的预设颜色。您可以将它们用作 Sass/SCSS 变量,或者直接在 HTML 模板中作为 CSS 类使用。

主题颜色

Quasar 提供了一套默认的主题颜色,所有 Quasar 组件都依赖这些颜色。选择主题颜色应该在应用程序的设计阶段就确定好。

primary
secondary
accent
dark
positive
negative
info
warning

TIP

主题构建器页面查看如何为您的网站/应用自定义主题颜色。

颜色列表

下面这些颜色都是 Quasar 预设的,可以直接使用。您可以在 .vue 文件的模板中把它们当作 CSS 类来使用,也可以在 <style lang="..."> 标签中当作 Sass/SCSS 变量 来使用。

red
red-1
red-2
red-3
red-4
red-5
red-6
red-7
red-8
red-9
red-10
red-11
red-12
red-13
red-14
pink
pink-1
pink-2
pink-3
pink-4
pink-5
pink-6
pink-7
pink-8
pink-9
pink-10
pink-11
pink-12
pink-13
pink-14
purple
purple-1
purple-2
purple-3
purple-4
purple-5
purple-6
purple-7
purple-8
purple-9
purple-10
purple-11
purple-12
purple-13
purple-14
deep-purple
deep-purple-1
deep-purple-2
deep-purple-3
deep-purple-4
deep-purple-5
deep-purple-6
deep-purple-7
deep-purple-8
deep-purple-9
deep-purple-10
deep-purple-11
deep-purple-12
deep-purple-13
deep-purple-14
indigo
indigo-1
indigo-2
indigo-3
indigo-4
indigo-5
indigo-6
indigo-7
indigo-8
indigo-9
indigo-10
indigo-11
indigo-12
indigo-13
indigo-14
blue
blue-1
blue-2
blue-3
blue-4
blue-5
blue-6
blue-7
blue-8
blue-9
blue-10
blue-11
blue-12
blue-13
blue-14
light-blue
light-blue-1
light-blue-2
light-blue-3
light-blue-4
light-blue-5
light-blue-6
light-blue-7
light-blue-8
light-blue-9
light-blue-10
light-blue-11
light-blue-12
light-blue-13
light-blue-14
cyan
cyan-1
cyan-2
cyan-3
cyan-4
cyan-5
cyan-6
cyan-7
cyan-8
cyan-9
cyan-10
cyan-11
cyan-12
cyan-13
cyan-14
teal
teal-1
teal-2
teal-3
teal-4
teal-5
teal-6
teal-7
teal-8
teal-9
teal-10
teal-11
teal-12
teal-13
teal-14
green
green-1
green-2
green-3
green-4
green-5
green-6
green-7
green-8
green-9
green-10
green-11
green-12
green-13
green-14
light-green
light-green-1
light-green-2
light-green-3
light-green-4
light-green-5
light-green-6
light-green-7
light-green-8
light-green-9
light-green-10
light-green-11
light-green-12
light-green-13
light-green-14
lime
lime-1
lime-2
lime-3
lime-4
lime-5
lime-6
lime-7
lime-8
lime-9
lime-10
lime-11
lime-12
lime-13
lime-14
yellow
yellow-1
yellow-2
yellow-3
yellow-4
yellow-5
yellow-6
yellow-7
yellow-8
yellow-9
yellow-10
yellow-11
yellow-12
yellow-13
yellow-14
amber
amber-1
amber-2
amber-3
amber-4
amber-5
amber-6
amber-7
amber-8
amber-9
amber-10
amber-11
amber-12
amber-13
amber-14
orange
orange-1
orange-2
orange-3
orange-4
orange-5
orange-6
orange-7
orange-8
orange-9
orange-10
orange-11
orange-12
orange-13
orange-14
deep-orange
deep-orange-1
deep-orange-2
deep-orange-3
deep-orange-4
deep-orange-5
deep-orange-6
deep-orange-7
deep-orange-8
deep-orange-9
deep-orange-10
deep-orange-11
deep-orange-12
deep-orange-13
deep-orange-14
brown
brown-1
brown-2
brown-3
brown-4
brown-5
brown-6
brown-7
brown-8
brown-9
brown-10
brown-11
brown-12
brown-13
brown-14
grey
grey-1
grey-2
grey-3
grey-4
grey-5
grey-6
grey-7
grey-8
grey-9
grey-10
grey-11
grey-12
grey-13
grey-14
blue-grey
blue-grey-1
blue-grey-2
blue-grey-3
blue-grey-4
blue-grey-5
blue-grey-6
blue-grey-7
blue-grey-8
blue-grey-9
blue-grey-10
blue-grey-11
blue-grey-12
blue-grey-13
blue-grey-14

作为 CSS 类使用

使用 text-bg- 作为前缀,然后加上预设颜色的名称,就可以改变文本/背景的颜色,例如:

<!-- 改变文本颜色 -->
<p class="text-primary">...</p>

<!-- 改变背景颜色 -->
<p class="bg-positive">...</p>

作为 Sass/SCSS 变量使用

您可以通过 $ 加上预设颜色的名称来作为 CSS 变量使用,例如:$primary$red-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>

添加自定义颜色

您可以通过以下方式添加自定义颜色,先在 CSS 中编写类似如下的代码:

.text-brand {
  color: #a2aa33 !important;
}
.bg-brand {
  background: #a2aa33 !important;
}

然后在 Quasar 的组件中就可以这样使用刚才定义的颜色:

<q-btn color="brand" ... />

您可以在 JS 中通过 getPaletteColor 工具函数获取颜色的值(16 进制字符串)。

动态切换主题颜色

工作原理

您可以在运行时修改上述主题色:primarysecondaryaccentdarkpositivenegativeinfowarning。也就是说,您可以为您的网站预设一个主题,然后在运行时切换不同的主题。

所有的主题颜色会作为 CSS 变量存储在页面的根节点(:root)上,每个颜色属性都被命名为 --q-${name},例如:--q-primary--q-secondary。这些 CSS 颜色属性跟普通的 HTML 属性一样会被子节点继承,所以您可以在运行时修改/重置它们,并且在整个应用程序中生效。

推荐您也把自定义的颜色放在 htmldocument.documentElement)或 bodydocument.body)上,这样当您修改它时,所有的子元素都会继承这些修改。

更多关于 CSS 变量的知识,请查看:MDN

工具函数:setCssVar

Quasar 提供了一个实用的工具函数来帮助您设置 CSS 变量,也可以修改上述主题颜色。

用法:setCssVar(colorName, colorValue[, element])

参数类型必填描述
colorNameStringCSS 颜色名称,可以是主题色:primarysecondaryaccentdarkpositivenegativeinfowarning
colorValueString16 进制颜色值
elementElement(默认值:document.body)将 CSS 变量注入到哪个 DOM 元素上

示例:

import { setCssVar } from "quasar";

setCssVar("light", "#DDD");
setCssVar("primary", "#33F");
setCssVar("primary", "#F33", document.getElementById("rebranded-section-id"));
// setCssVar('primary', '#0273d4') 在原生 JS 中等于:
document.body.style.setProperty("--q-primary", "#0273d4");

工具函数:getCssVar

同样,Quasar 也提供了一个获取 CSS 变量的工具函数。

用法:getCssVar(colorName[, element])

参数类型必填描述
colorNameStringCSS 颜色名称,可以是主题色:primarysecondaryaccentdarkpositivenegativeinfowarning
elementElement(默认:document.body)从哪个 DOM 元素中读取 CSS 变量

示例:

import { getCssVar } from "quasar";

getCssVar("primary"); // '#33F'
getCssVar("primary", document.getElementById("rebranded-section-id"));

这个函数是原生 JS 中 getPropertyValue() 的包装,等同于:

// getCssVar('primary') 等于原生 JS 中的:
getComputedStyle(document.documentElement).getPropertyValue("--q-primary"); // #0273d4

更多颜色工具

除了上面的工具函数,Quasar 还有更多的处理颜色的工具函数:Color utils

import { colors, setCssVar } from "quasar";

const { lighten } = colors;

const newPrimaryColor = "#933";
setCssVar("primary", newPrimaryColor);
setCssVar("primary-darkened", lighten(newPrimaryColor, -10));

设置颜色默认值

如果不使用 Sass/SCSS,您需要通过 quasar.config.js 来修改默认的主题颜色:

// Quasar CLI - quasar.config.js
return {
  framework: {
    config: {
      brand: {
        primary: "#ff0000",
        // ...
      },
    },
  },
};

如果使用 Quasar CLI,也可以通过 @quasar/app-vite Boot File@quasar/app-webpack Boot File 来设置。 这种方式非常适合需要在应用初始化时动态设置颜色的场景,例如从接口获取主题色后再应用到页面上。

/src/boot/brand-colors.js - 或其他名称

import { setCssVar } from "quasar";
import { defineBoot } from "#q-app/wrappers";

export default defineBoot(() => {
  setCssVar("primary", "#ff0000");
});

如果使用 SSR 模式,需要禁用此 boot 文件的服务端执行:

/quasar.config 文件

boot: [
  { server: false, path: 'brand-colors' }, // 或者您给 boot 文件取的名称
  // ...
],