You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Quasar中为浅色/深色模式自定义专属颜色?

实现Quasar深浅主题的自定义差异化颜色

你完全可以在现有的.body--dark和.body--light类中添加自定义CSS变量,实现和Vuetify类似的效果,具体步骤如下:

1. 在quasar.variables.scss中添加自定义颜色变量

直接在你已有的代码块里扩展自定义变量即可,不需要局限于Quasar预设的primary/secondary这些。比如新增一个--custom-accent和--custom-bg:

.body--dark {
  --q-primary: #exampleColor;
  --q-secondary: #exampleColor;
  --q-accent: #exampleColor;
  --q-positive: #exampleColor;
  --q-negative: #exampleColor;
  --q-info: #exampleColor;
  --q-warning: #exampleColor;
  --q-dark-page : #exampleColor;
  // 新增自定义变量
  --custom-accent: #2d3748;
  --custom-bg: #1a202c;
}

.body--light {
  --q-primary: #exampleColor;
  --q-secondary: #exampleColor;
  --q-accent: #exampleColor;
  --q-positive: #exampleColor;
  --q-negative: #exampleColor;
  --q-info: #exampleColor;
  --q-warning: #exampleColor;
  // 新增自定义变量
  --custom-accent: #ebf8ff;
  --custom-bg: #ffffff;
}

2. 在组件中使用自定义变量

方式一:直接在模板的样式绑定中使用

比如给一个元素设置背景色:

<template>
  <div :style="{ backgroundColor: 'var(--custom-bg)' }">
    自定义背景的内容
  </div>
</template>

方式二:在组件的Scoped样式中使用

如果用Scoped CSS/Sass,直接通过var()引用变量:

<style scoped>
.custom-box {
  background-color: var(--custom-bg);
  border-color: var(--custom-accent);
}
</style>

3. (可选)用Sass变量简化维护

如果需要频繁修改颜色值,可以先定义Sass变量再赋值给CSS变量,方便统一管理:

// 先定义深浅主题的自定义颜色
$custom-accent-dark: #2d3748;
$custom-bg-dark: #1a202c;
$custom-accent-light: #ebf8ff;
$custom-bg-light: #ffffff;

.body--dark {
  --q-primary: #exampleColor;
  --q-secondary: #exampleColor;
  --q-accent: #exampleColor;
  --q-positive: #exampleColor;
  --q-negative: #exampleColor;
  --q-info: #exampleColor;
  --q-warning: #exampleColor;
  --q-dark-page : #exampleColor;
  // 绑定自定义变量
  --custom-accent: #{$custom-accent-dark};
  --custom-bg: #{$custom-bg-dark};
}

.body--light {
  --q-primary: #exampleColor;
  --q-secondary: #exampleColor;
  --q-accent: #exampleColor;
  --q-positive: #exampleColor;
  --q-negative: #exampleColor;
  --q-info: #exampleColor;
  --q-warning: #exampleColor;
  // 绑定自定义变量
  --custom-accent: #{$custom-accent-light};
  --custom-bg: #{$custom-bg-light};
}

这样操作后,当Quasar切换深浅主题时,自定义颜色会自动跟随.body--dark/.body--light的生效而切换,完全满足你的需求。

内容的提问来源于stack exchange,提问作者Ckuessner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:07:17