将主题颜色暴露给 vuetify 中的 css 变量不起作用

Posted

技术标签:

【中文标题】将主题颜色暴露给 vuetify 中的 css 变量不起作用【英文标题】:Expose theme colors to css variables in vuetify not working 【发布时间】:2020-04-19 02:20:23 【问题描述】:

我启用了自定义属性:

Vue.use(Vuetify, 
    options: 
        customProperties: true
    
);

并尝试通过 CSS 变量使用:

<style>
    .custom
        color:var(--v-primary-base);
    
</style>

这是我设置主题的vuetify.js 文件:

export default new Vuetify(
    icons: 
        iconfont: 'mdi',
    ,
    theme: 
        themes: 
            light: 
                background: '#FFFFFF',
                primary: '#25316A',
                secondary: '#b0bec5',
                accent: '#25316A',
                error: '#E86674',
                orange: '#FF7A0D',
                golden: '#A68C59',
                badge: '#F5528C',
                customPrimary: '#085294',
            ,
            dark: 
                primary: '#085294',
            
        ,
    ,
)

没有一个主题颜色可以通过变量访问。我尝试了很多方法,但没有奏效,也没有抛出错误。有谁能帮帮我吗?

【问题讨论】:

这能回答你的问题吗? ***.com/questions/48280990/… @AnnKilzer 不,没有用。 【参考方案1】:

您需要将options 属性传递给Vuetify 实例,而不是在use 函数中

来自docs:

export default new Vuetify(
  theme: 
    options: 
      customProperties: true,
    ,
    // ...
  ,
)

【讨论】:

Vuetify 的变量此时停止工作,这是为什么呢?例如,您不能使用 variables.scss 并定义 $stepper-header-height: 或其他东西..(没有 customProperties,这可行)【参考方案2】:

你必须使用 vuetify 文件中的选项,但是你在错误的地方使用了它......

export default new Vuetify(
icons: 
    iconfont: 'mdi',
,
theme: 
    themes: 
        options: 
            customProperties: true,
        ,
        light: 
            background: '#FFFFFF',
            primary: '#25316A',
            secondary: '#b0bec5',
            accent: '#25316A',
            error: '#E86674',
            orange: '#FF7A0D',
            golden: '#A68C59',
            badge: '#F5528C',
            customPrimary: '#085294',
        ,
        dark: 
            primary: '#085294',
        
,
,
)

之后,当您想使用自定义 CSS 变量时,您必须像这样使用它..

<style>
    .custom
        color:var(--v-golden-base);
    
</style>

这里的 base 是一个默认值,我展示了黄金变量,但你可以使用它们中的任何一个。

【讨论】:

你知道为什么 color: var(--v-info-lighten2) 有效吗?但是 var(--v-red-lighten2) 没有? 你有答案了吗? 天哪,我不记得了,不再使用 vue。我想你们俩都是对的,我把它放错地方了.. 这不起作用。 customProperties 必须设置为 theme 而不是 themes 它在我的项目中工作,我的项目现在已经启动并运行了!我不知道为什么不适合你!

以上是关于将主题颜色暴露给 vuetify 中的 css 变量不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有自定义主题变体的 vuetify 颜色道具

如何更改 Vuetify 中的默认颜色?

当主题更改 vuetify 时,使用“辅助”组件的颜色不会改变

使用 Vuetify 主题时如何分配文本颜色

vuetify:如何设置窗口背景颜色?

如何更改 Vuetify 中数据表的背景颜色?