Write the Code. Change the World.

8月 02

前边一篇说了 element-plus 覆盖主题色的操作。这边就要做多主题的处理。也就是除了默认的主题,还得增加一个暗黑主题。

https://element-plus.org/zh-CN/guide/dark-mode.html

Do

思路还是一样,覆盖主题(颜色,间距等)。

# 创建
touch assets/styles/element-dark.scss

@forward 'element-plus/theme-chalk/src/dark/var.scss' with (
  $bg-color: (
    'page': #0a0a0a,
    '': #626aef,
    'overlay': #1d1e1f,
  ),
  $colors:(
    "primary": ("base": green),
  )
);

@use "element-plus/theme-chalk/src/dark/css-vars.scss" as *;

vite.config.ts 中引入。

    preprocessorOptions: {
      scss: {
        additionalData: `
          @use "@/assets/styles/element.scss";
          @use "@/assets/styles/element-dark.scss";
        `,
      },
    },

这样,样式就好了。可以手动在 html 节点加入 class="dark" 看看效果。发现背景颜色已经是黑色(#0a0a0a)了。

下一步

这里不直接在 html 节点加入类来实现暗黑主题。而是使用 useDark 来实现。

https://vueuse.org/core/useDark/

# 安装
pnpm add -D  @vueuse/core

homeview 中,通过函数来实现主题的自动切换。

# template 中增加以下代码
    <div>
      <span @click.stop="toggleDark()">暗黑模式</span>
      <el-switch size="small" v-model="isDark" />
    </div>

# script 中增加以下代码
import { useDark, useToggle } from '@vueuse/core'

const isDark = useDark()
const toggleDark = useToggle(isDark)

这样,就可以通过点击 switch 来切换暗黑主题和白天主题(默认)的切换。效果如下。

当然,这里自定义的颜色偏少,可以去更多的定义颜色。以实现更丰富的主题。还有,刷新浏览器,这里会记录上一次的主题设置。

提交版本

git add .
git commit -m '安装 vueuse 增加暗黑主题的配置'

# 项目目前都是基础部件的构建,为了保持所有部件的最新,这里经常会更新
pnpm update

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注