当前位置: 首页 > article >正文

Naive UI 更换主题颜色

更换<n-switch>的颜色

使用     :theme-overrides="themeOverrides" 

<n-switch size="small" :theme-overrides="themeOverrides" 
          v-model:value="app.enable" @update:value="toggleEnable(app)"/>
const themeOverrides = {
    railColorActive: '#42af38', // 选中时的轨道颜色
};

全局更换主题色,默认原本是绿色,现在全局更换的到蓝色

1.自定义主题的js

import { defineComponent } from 'vue';

export default {
    common: {
        // 设置主色为蓝色
        primaryColor: '#2080f0',
        primaryColorHover: '#4098fc',
        primaryColorPressed: '#1060c9',
        primaryColorSuppl: '#4098fc',
        infoColor: '#2080f0',
        infoColorHover: '#4098fc',
        infoColorPressed: '#1060c9',
        infoColorSuppl: '#4098fc'
    }
};
 2:在app.vue中使用

 以下是我的App.vue整个代码

<template>
    <n-config-provider style="height: 100%;" :locale="zhCN" :date-locale="dateZhCN" :theme-overrides="themeOverrides">
        <n-loading-bar-provider>
            <n-dialog-provider>
                <n-notification-provider>
                    <n-message-provider>
                        <router-view></router-view>
                        <naive-provider-content/>
                    </n-message-provider>
                </n-notification-provider>
            </n-dialog-provider>
        </n-loading-bar-provider>
    </n-config-provider>
</template>

<script setup>
import {
    useLoadingBar,
    useDialog,
    useMessage,
    useNotification,
    NDialogProvider,
    NConfigProvider,
    NLoadingBarProvider,
    NMessageProvider,
    NNotificationProvider
} from 'naive-ui'
import {zhCN, dateZhCN} from 'naive-ui'
import {defineComponent, h, onMounted} from "vue";
import themeOverrides  from "@/styles/theme.js";


// 挂载naive组件的方法至window, 以便在路由钩子函数和请求函数里面调用
function registerNaiveTools() {
    window.$loadingBar = useLoadingBar()
    window.$dialog = useDialog()
    window.$message = useMessage()
    window.$success = message('success')
    window.$warning = message('warning')
    window.$error = message('error')
    window.$info = message('info')
    window.$notification = useNotification()
}

function message(
    type
) {
    return (content, duration = 1000, options) => {
        return new Promise((resolve) => {
            window.$message?.[type](content, {
                duration,
                ...options,
                onLeave: () => {
                    if (options?.onLeave) {
                        options.onLeave()
                    }
                    resolve()
                }
            })
        })
    }
}


const NaiveProviderContent = defineComponent({
    name: 'NaiveProviderContent',
    setup() {
        // console.debug(111)
        registerNaiveTools()
    },
    render() {
        return h('div')
    }
})




</script>
 重点:

只要配置好这个两个地方就可以了,来让我们看一下样式,默认的输入框聚焦是蓝色的了,其他的地方默认的主题色都会随之更新的


http://www.kler.cn/a/577759.html

相关文章:

  • 《安富莱嵌入式周报》第351期:DIY半导体制造,工业设备抗干扰提升方法,NASA软件开发规范,小型LCD在线UI编辑器,开源USB PD电源,开源锂电池管理
  • LDR6500 PD 协议芯片的运用场景
  • uniapp 自定义地图组件(根据经纬度展示地图地理位置)
  • Web开发-PHP应用Cookie脆弱Session固定Token唯一身份验证数据库通讯
  • windows 平台如何点击网页上的url ,会打开远程桌面连接服务器
  • 第十二届蓝桥杯 异或数列
  • 【大模型理论篇】--Mixture of Experts架构
  • C语言学习笔记-进阶(6)字符串函数2
  • 2025-03-08 学习记录--C/C++-PTA 习题10-3 递归实现指数函数
  • 解决电脑问题(2)——主板问题
  • skynet简单游戏服务器的迭代
  • CCF-GESP Python一级考试全解析:网络协议+编程技能双突破
  • QT快速入门-信号与槽
  • 2025年LVS的NAT和DR模型工作原理,并完成DR模型实战!
  • 江协科技/江科大-51单片机入门教程——P[5-1] 模块化编程 P[5-2] LCD1602调试工具
  • 《机器学习数学基础》补充资料:描述性统计
  • MySQL复习笔记
  • 【贪心算法2】
  • 第8章 访问管理(网络安全防御实战--蓝军武器库)
  • hooks useModule自定义hooks (二次封装AgGridReact ag-table)自定义表头,自定义表头搜索