主题

# 框架主题

# 基础版

基础版主题样式存放在 /src/assets/styles/resources/themes.scss 文件中,均为 scss 变量,修改后即可在页面上查看效果。


# 专业版

与基础版不同,专业版默认提供了 6 款主题,在配置文件中就可轻松切换。并且多款主题共存,支持在项目运行时动态切换。

/**
 * 主题,默认提供 6 款
 * default 默认
 * vue-cli Vue CLI 风格
 * gitee 码云风格
 * freshness 清新
 * elegant 素雅
 * pure-white 纯白
 */
theme: 'default'

如果框架提供的主题风格满足不了你的需求,你还可以自定义新的主题,在 /src/assets/styles/resources/ 目录里, theme-*.scss 即主题样式文件,以默认主题为例:

$theme-default: (
    // 主区域背景色
    g-main-bg: #f0f2f5,
    // 【头部】
    // 头部背景色
    g-header-bg: #222b45,
    // 头部导航文字颜色
    g-header-menu-color: #ccc,
    // 头部导航文字选中颜色
    g-header-menu-active-color: #fff,
    // 头部导航选中背景色
    g-header-menu-active-bg: #334067,
    ...
);

可以看到,默认主题的样式都存放在 $theme-default 这个变量里,所以如果想创建一个新主题,你可以将 theme-default.scss 文件复制一份,例如我们要增加一个红色主题,则需要将文件名改为 theme-red.scss ,然后将文件里的 $theme-default 变量名也修改为 $theme-red ,最后打开 /src/assets/styles/resources/themes.scss 文件,然后增加以下一行代码即可。

$themes: (
    default: $theme-default,
    vue-cli: $theme-vue-cli,
    gitee: $theme-gitee,
    freshness: $theme-freshness,
    elegant: $theme-elegant,
    pure-white: $theme-pure-white,
	red: $theme-red
);

最后在框架配置里修改主题为 red 就可以调用这个我们创建的主题了。

theme: 'red'

# Element Plus 主题

详细可阅读 Element Plus 官方文档《自定义主题》 (opens new window)

最常见的需求就是修改 Element Plus 的主题色,你可以在 /src/assets/style/ 目录下新建一个 element.customized.scss 文件,并在文件中写入以下代码。

@forward "element-plus/theme-chalk/src/common/var.scss" with (
    $colors: (
        "primary": (
            "base": green
        )
    )
);
@use "element-plus/theme-chalk/src/index.scss" as *;

然后在 /src/assets/style/global.scss 文件的开头加入一行 @import "element.customized.scss"; ,这时候在页面上能看到自定义的主题色已经生效了,但你还需要打开 /src/main.js 文件,找到 import 'element-plus/dist/index.css' 这一行并删除,以减少样式重复载入。

除了修改主题色外,还可以到 Element Plus 的 packages/theme-chalk/src/common/var.scss 中查找其它 scss 变量。