【问题标题】:Vuejs + Vuetify Custom Theme and Icons Not workingVuejs + Vuetify 自定义主题和图标不起作用
【发布时间】:2025-11-27 00:00:01
【问题描述】:

我已经搜索了所有以前的问题,并且在新版本的 Vuetify 中,自定义主题和图标不适合我。

"vuetify": "^2.1.11",

vuetify.js 文件:

import Vue from 'vue';
import Vuetify from 'vuetify/lib';
import 'vuetify/dist/vuetify.min.css';
import '@fortawesome/fontawesome-free/css/all.css'

import SmithIcon from '../icons/SmithIcon.vue'

Vue.use(Vuetify);

const opts = {
    iconfont: 'fa',
    theme: {
        primary: '#000000',
        secondary: '#FFD65E',
        accent: '#EDAFB8',
        error: '#FF5252',
        info: '#2196F3',
        success: '#4CAF50',
        warning: '#FFC107'
    },
    icons: {
        smith: {
            component: SmithIcon
        }
    }
}

export default new Vuetify(opts);

main.js 文件:

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router';

// services
import router from './router'
import vuetify from './plugins/vuetify';

import store from './store/index';

Vue.config.productionTip = false

Vue.use(VueRouter);


new Vue({
  router,
  store,
  vuetify,
  render: h => h(App)
}).$mount('#app');

Navbar.vue 文件:(使用)

<v-app-bar
                app
                clipped-right
                color="primary"
                dark
        >
            <v-app-bar-nav-icon @click.stop="drawer = !drawer"/>
            <v-toolbar-title>
                <v-row>
                    <v-col>
                        <v-img src="../../assets/arc-logo.svg" max-width="150"/>
                    </v-col>
                </v-row>
            </v-toolbar-title>
            <v-spacer/>
                <div class="mr-5">
                    <v-img src="../../assets/help.svg" max-width="35"/>
                </div>
        </v-app-bar>

由于我的自定义主题,导航栏的颜色应该是黑色,但它仍然是 vuetify 默认的蓝色。请指教。

【问题讨论】:

  • 您是否尝试将 :class="primary" 放入 v-app-bar 而不是 color="primary"?

标签: vue.js vuetify.js


【解决方案1】:

2.x 的默认主题是'light',所以你需要在里面设置颜色...

theme: {
    themes: {
        light: {
            primary: '#000',
            secondary: '#FFD65E',
            accent: '#EDAFB8',
            error: '#FF5252',
            info: '#2196F3',
            success: '#4CAF50',
            warning: '#FFC107'
        }
    }
}

自定义图标设置为...

   icons: {
        iconfont: 'fa',
        values: {
            clear: 'fas fa-trash',
            menu: 'fa fa-bars'
        }
   }

Demo

【讨论】:

  • 我将所有图标添加为全局组件,以便绑定自定义样式,但主题现在可以使用!