vue3 - Element Plus暗黑模式适配、切换及自定义颜色

GitHub Demo 地址

在线预览

Element Plus 2.2.0 版本开始支持暗黑模式,启用方式参考 Element Plus 官方文档 - 暗黑模式

demo通过Element PlusVueUse 的 useDark 方法实现具有自动数据持久性的响应式暗黑模式。

安装

npm install element-plus --save
npm install @vueuse/core --save

配置

main.ts导入下面一行代码就会支持暗黑模式

// main.ts
import 'element-plus/theme-chalk/dark/css-vars.css'

然后通过VueUse 的 useDark 方法切换暗黑模式

<template><el-switch v-model="isDark" inline-prompt :active-icon="IconEpMoon" :inactive-icon="IconEpSunny" active-color="var(--el-fill-color-dark)" inactive-color="var(--el-color-primary)" @change="toggleDark" /></template><script setup lang="ts">import IconEpSunny from '~icons/ep/sunny';
import IconEpMoon from '~icons/ep/moon';const isDark = useDark()
const toggleDark = () => useToggle(isDark)</script>

自定义全局使用的暗黑模式颜色

有时需要自定义一些可全局使用的颜色,并且支持暗黑模式
可在 import 'element-plus/theme-chalk/dark/css-vars.css'之后导入一个自定义的style文件,如base.scss,
然后在内部实现自定义的颜色

:root {--bPageBgColor: #f5f5f5;--bTextColor: #000;--bBgColor: var(--el-bg-color);--bBorderColor: var(--el-input-border-color);--bDialogBgColor: var(--el-dialog-bg-color);// single page use--roleHeaderBgColor: #f1f1f1;--selectRowBgColor: #e8f4ff;
}html.dark {--bPageBgColor: #0a0a0a;--bTextColor: #fff;// --el-bg-color-page: #0a0a0a;// --el-bg-color: #141414;// single page use--roleHeaderBgColor: #0e0e0e;--selectRowBgColor: #414243;
}

然后在页面的css中使用设置的自定义颜色

 	color: var(--bTextColor);

效果如下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/83388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【go.mod file not found in current directory or any parent directory】

go编译程序出现错误提示&#xff1a; go.mod file not found in current directory or any parent directory; see ‘go help modules’ (exit status 1) 解决方法&#xff1a; cmd切换到go工程目录下&#xff0c;执行: go mod init 工程名称

canvas-绘图库fabric.js简介

一般情况下简单的绘制&#xff0c;其实canvas原生方法也可以满足&#xff0c;比如画个线&#xff0c;绘制个圆形、正方形、加个文案。 let canvas document.getElementById(canvas);canvas.width 1200;canvas.height 600;canvas.style.width 1200px;canvas.style.height 6…

9.20金融科技(比特币)

​ 比特币的起源和发展 2008年爆发全球金融危机&#xff0c;同年11月1日&#xff0c;一个自称中本聪&#xff08;Satoshi Nakamoto&#xff09;的人在P2P foundation网站上发布了比特币白皮书《比特币&#xff1a;一种点对点的电子现金系 &#xff0c;陈述了他对电子货币的新设…

Mallox勒索病毒:最新变种malloxx袭击了您的计算机?

导言&#xff1a; 随着互联网的普及和数字化生活的发展&#xff0c;网络安全问题也逐渐成为了我们生活中不可忽视的一部分。其中&#xff0c;勒索病毒是一种恶意软件&#xff0c;它可以将您的数据文件加密&#xff0c;并要求您支付赎金以获取解密密钥。本文91数据恢复将介绍一…

IMX6ULL移植篇-Linux内核源码目录分析二

一. Linux内核源码目录 本文继续来具体说明 Linux内核源码的一些重要文件含义。 本文续上一篇文章&#xff0c;地址如下&#xff1a; IMX6ULL移植篇-Linux内核源码目录分析一_凌肖战的博客-CSDN博客 二. Linux内核源码目录分析 9. init 目录 此目录存放 Linux 内核启动的…

R绘制箱线图

代码大部分来自boxplot()函数的帮助文件&#xff0c;可以通过阅读帮助文件&#xff0c;调整代码中相应参数看下效果&#xff0c;进而可以理解相应的作用&#xff0c;帮助快速掌握barplot()函数的用法。 语法 Usage(来自帮助文件) barplot(height, ...)## Default S3 method: …

就只说 3 个 Java 面试题

在面试时&#xff0c;即使是经验丰富的开发人员&#xff0c;也可能会发现这是一些很棘手的问题&#xff1a; 1、Java中“transient”关键字的用途是什么&#xff1f;如何才能实现这一目标&#xff1f; 在 Java 中&#xff0c;“transient”关键字用于指示类的特定字段不应包含…

使用RKDevTool将update.img完整镜像进行解包,得到单独分区的镜像

(1)使用开发工具高级功能的解包 导入xx.img,然后点击解包(2)在Output/Android/Image得到想要的image

Linux关于memory cgroup的几个要点

概述 本文讲述memory cgroup比较容易误解的一些逻辑&#xff0c;如果不太经常使用和解决问题的话&#xff0c;对于memory cgroup的认知会比较浅显&#xff1a;cgroup memory用来限制进程的内存使用&#xff0c;但是我们进一步想如下的问题&#xff1a; 进程的内存可以分很多类…

Vue的路由使用,Node.js下载安装及环境配置教程 (超级详细)

前言&#xff1a; 今天我们来讲解关于Vue的路由使用&#xff0c;Node.js下载安装及环境配置教程 一&#xff0c;Vue的路由使用 首先我们Vue的路由使用&#xff0c;必须要导入官方的依赖的。 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务https://www.bootcdn.cn/ <…

IP协议的相关特性

IP协议相关特性 报头结构 报文结构解释 4位版本号:指定IP协议的版本,对于IPV4来说,就是四位. 4位首部长度:IP头部的长度是多少个32bit,也就是Length4的字节数,4bit表示的最大的数是15,因此IP头部最大长度是60. 8位服务类型:3位优先权字段&#xff08;已经弃用&#xff09;&…

安全生产知识竞赛活动小程序界面分享

安全生产知识竞赛活动小程序界面分享

linux内核分析:进程通讯方式

信号 一旦有信号产生,我们就有下面这几种,用户进程对信号的处理方式。 1.执行默认操作。Linux 对每种信号都规定了默认操作,例如,上面列表中的 Term,就是终止进程的意思。Core 的意思是 Core Dump,也即终止进程后,通过 Core Dump 将当前进程的运行状态保存在文件里面…

代码随想录 -- day56 -- 583. 两个字符串的删除操作 、72. 编辑距离

583. 两个字符串的删除操作 class Solution { public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size() 1, vector<int>(word2.size() 1));for (int i 0; i < word1.size(); i) dp[i][0] i;for (int j 0; j <…

Python画图系列——折线图

好看的折线图 import numpy as np import matplotlib.pyplot as plt# 生成随机数据 # np.random.seed(42) # 设置随机种子以确保可重复性 sample_numbers np.arange(1, 21) # 生成1到20的样本编号random_data np.random.rand(20) # 生成20个随机数&#xff0c;范围在0到1之…

淘宝商品详情数据采集

淘宝商品详情数据采集的方法如下&#xff1a; 确定采集目标&#xff1a;明确要采集的商品信息&#xff0c;如商品标题、价格、销量、评论、图片等。选择采集工具&#xff1a;可以选择Scrapy框架、Java的WebMagic框架等。编写爬虫程序&#xff1a;进入目标文件夹&#xff0c;输…

基于模型驱动的深度学习高光谱图像融合研究_孙杨霖

可以借鉴一下她的国内外现状研究部分,写得挺好的 目前的高光谱图像融合方法可以大致分为三类:传统数学方法(成分替代和多分辨率分析)、变分方法(贝叶斯、矩阵分析)以及基于深度学习(输入级、特征级和模型级融合)的方法。其中前两种方法也可以被统称为传统高光谱图像融…

无涯教程-JavaScript - POWER函数

描述 POWER函数返回加到幂的数字的输出。 语法 POWER (number, power)争论 Argument描述Required/OptionalNumber 基数。 它可以是任何实数。 RequiredPowerThe exponent to which the base number is raised.Required Notes 可以使用" ^"运算符代替POWER来指示…

八一书《乡村振兴战略下传统村落文化旅游设计》许少辉瑞博士生辉少许——2023学生开学季许多少年辉光三农

八一书《乡村振兴战略下传统村落文化旅游设计》许少辉瑞博士生辉少许——2023学生开学季许多少年辉光三农

二、搭建Java环境

搭建Java环境 搭建Java环境1.1.下载JDK1.2.在Win10下配置JDK环境 —————————————————————————————————————————————————— ———————————————————————————————————————————————…