通过 Tailwind CSS 自定义样式 实现深色模式切换

创建vite项目或者vue-cli配置大同小异

1、当前环境

  • Vue.js 3.5
  • @nuxtjs/tailwindcss 6.13.1
  • nuxt3.15.4
  • node18
    这里主要依赖是tailwindcss 因为当前项目是使用nuxt开发。

2、配置颜色模式

在assets/css下创建main.css

* {padding: 0;margin: 0;box-sizing: border-box;
}[data-theme="light"] {/* 基础颜色 */--background-color: #FFFFFF;/* 次要背景颜色 */--background-secondary-color: #F5F5F5;--text-color: #333333;          /* 主要文字颜色 */--text-secondary-color: #666666; /* 次要文字颜色 */--primary-color: #1E90FF;       /* 主色调 */--secondary-color: #FF6347;    /* 辅助色调 */--border-color: #E0E0E0;        /* 边框颜色 *//* 状态颜色 */--success-color: #4CAF50;       /* 成功 */--error-color: #F44336;         /* 失败 */--warning-color: #FF9800;       /* 警告 */--info-color: #2196F3;          /* 信息 *//* 其他辅助颜色 */--disabled-color: #CCCCCC;      /* 禁用状态颜色 */--placeholder-color: #999999;   /* 输入框占位符颜色 */--icon-color: #666666;          /* 图标颜色 */
}
[data-theme="dark"] {/* 基础颜色 */--background-color: #1E1E1E;/* 次要背景颜色 */--background-secondary-color: #282828;--text-color: #E0E0E0;          /* 主要文字颜色 */--text-secondary-color: #A0A0A0; /* 次要文字颜色 */--primary-color: #1E90FF;       /* 主色调 */--secondary-color: #FF6347;    /* 辅助色调 */--border-color: #444444;        /* 边框颜色 *//* 状态颜色 */--success-color: #66BB6A;       /* 成功 */--error-color: #EF5350;         /* 失败 */--warning-color: #FFA726;       /* 警告 */--info-color: #42A5F5;          /* 信息 *//* 其他辅助颜色 */--disabled-color: #666666;      /* 禁用状态颜色 */--placeholder-color: #888888;   /* 输入框占位符颜色 */--icon-color: #A0A0A0;          /* 图标颜色 */
}/* 覆盖 vant 组件的默认样式 */
:root:root {--van-cell-background: var(--background-color);
}
.theme-transition {& * {transition:background-color 0.2s ease,color 0.2s ease,border-color 0.2s ease;}/* 禁用伪元素过渡 */& *::before,& *::after {transition: none;}
}/* 全局样式文件或组件内样式 */
.markdown-content ul {list-style-type: disc; /* 恢复小圆点 */padding-left: 1.5em; /* 添加合理缩进 */
}.markdown-content li {margin: 4px 0;
}

3、在app.vue引入

<template><NuxtPage />
</template>
<style>
@import url("~/assets/css/main.css");
</style>
<style>
/* 平滑的滚动效果 */
html {scroll-behavior: smooth;
}</style>

4、配置自定义类名

修改配置文件tailwind.config 创建项目安装Tailwind CSS 自动生成的

module.exports = {// 配置自定义样式theme: {extend: {colors: {background: "var(--background-color)",text: "var(--text-color)","text-secondary": "var(--text-secondary-color)",primary: "var(--primary-color)","text-primary": "var(--primary-color)",secondary: "var(--secondary-color)",border: "var(--border-color)",success: "var(--success-color)","text-success": "var(--success-color)",error: "var(--error-color)",warning: "var(--warning-color)","text-warning": "var(--warning-color)",info: "var(--info-color)","text-info": "var(--info-color)",disabled: "var(--disabled-color)",placeholder: "var(--placeholder-color)",icon: "var(--icon-color)","background-secondary-color": "var(--background-secondary-color)"},},},
};

5、页面使用

<header class=" text-text py-20 text-center"><h1 class="text-4xl font-bold">欢迎来到我的博客</h1><p class="mt-4 text-lg">分享技术、生活和思考</p>
</header>

这里主要观察 text-text 样式 这里 类名结构为 text表示字体 text-[自定义类名]
因为配置的样式为text。他的值为css变量
在这里插入图片描述

6、切换颜色主题

[data-theme=“light”]和 [data-theme=“dark”] 下分别定义了两套css变量
所以现在如果需要切换颜色主题 只需要修改 根节点data-theme的值。

7、效果图

深色

在这里插入图片描述

浅色

在这里插入图片描述

怎么样 是不是 很简单 我相信你也可以的。

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

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

相关文章

PWNOS:2.0(vulnhub靶机)

文章目录 靶机地址主机发现、端口扫描web渗透目录探测漏洞利用权限提升 解密工具地址总结 靶机地址 https://download.vulnhub.com/pwnos/pWnOS_v2.0.7z 这里如果是windows系统直接使用vmware或者virtubox打开可以使用,如果是mac系统需再去做一个配置&#xff0c;比较麻烦 这里…

Gartner魔力象限(Gartner Magic Quadrant)

Gartner魔力象限&#xff08;Gartner Magic Quadrant&#xff09;是由全球领先的研究和咨询公司Gartner发布的市场研究报告&#xff0c;广泛应用于IT行业&#xff0c;尤其是在技术供应商评估中。它以图形化的方式展示了不同技术领域中各个供应商的市场表现&#xff0c;帮助企业…

信创时代开发工具选择指南:国产替代背景下的技术生态与实践路径

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

人口老龄化丨AI健康小屋如何实现防病于未然​

随着全球老龄化加剧&#xff0c;“银发浪潮” 对医疗资源、养老护理和健康管理提出了严峻挑战。 由此智绅科技应运而生&#xff0c;七彩喜智慧养老系统构筑居家养老安全网。 AI 健康小屋作为银发科技的创新载体&#xff0c;通过智能化健康监测、精准化风险预警、便捷化医疗衔…

【金仓数据库征文】金仓数据库:开启未来技术脑洞,探索数据库无限可能

我的个人主页 我的专栏&#xff1a; 人工智能领域、java-数据结构、Javase、C语言&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01; 点赞&#x1f44d;收藏❤ 目录 引言&#xff1a;数据库进化的下一站 —— 未来科技的无限可能金仓数据库简介&#xff1a;国…

#什么是爬虫?——从技术原理到现实应用的全面解析 VI

什么是爬虫?——从技术原理到现实应用的全面解析 V 二十六、异构数据采集技术突破 26.1 PDF文本与表格提取 import pdfplumber import pandas as pddef extract_pdf_data(pdf_path):"""从PDF中提取文本和表格数据:param pdf_path: PDF文件路径:return: 包含…

关于Spring Boot构建项目的相关知识

一 前端框架 1 VUE框架 1.1 简介 Vue是一款流行的JavaScript框架&#xff0c;用于构建用户界面和单页面应用程序。它的设计初衷是为了简化Web开发过程&#xff0c;使开发者能够快速构建交互性强、响应速度快的Web应用。 1.2 优点 简单易用&am…

PPO 强化学习机械臂 IK 训练过程可视化利器 Tensorboard

视频讲解&#xff1a; PPO 强化学习机械臂 IK 训练过程可视化利器 Tensorboard PPO 强化学习过程中&#xff0c;设置了verbose会显示数据&#xff0c;但还是不够直观&#xff0c;这里上一个可视化利器&#xff0c;Tensorboard&#xff0c;实际上stable baselines3中已经有了这部…

UE5的 Modify Curve 蓝图节点

In Unreal Engine’s Animation Blueprints, the Modify Curve node lets you drive and alter any named Animation Curve on your character at runtime. The Apply Mode setting on that node controls how the “new” value you feed in (via the added curve‐input pin)…

【Hive入门】Hive分区与分区表完全指南:从原理到企业级实践

引言 在大数据时代&#xff0c;高效管理海量数据成为企业面临的核心挑战。Hive作为Hadoop生态系统中最受欢迎的数据仓库解决方案&#xff0c;其分区技术是优化数据查询和管理的关键手段。本文将全面解析Hive分区技术的原理、实现方式及企业级最佳实践&#xff0c;帮助您构建高性…

jdk-8u202-linux-x64.tar.gz官方下载地址

https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 点击下载&#xff0c;需要先注册oracle账号&#xff0c;很好注册随便写&#xff0c;注册完登录就可以下载了。目前就Oracle JDK 8u201/202 是最后两个可免费用于商业用途的公开版本

OpenCv高阶(十)——光流估计

文章目录 前言一、光流估计二、使用步骤1、导库读取视频、随机初始化颜色2、初始化光流跟踪3、视频帧处理循环4、光流计算与可视化5、循环控制与资源释放完整代码 总结 前言 在计算机视觉领域&#xff0c;光流估计是捕捉图像序列中像素点运动信息的核心技术。它描述了图像中每…

AIGC实战之如何构建出更好的大模型RAG系统

一、RAG 系统核心架构解析 1. 检索模块深度优化 1.1 混合检索技术实现 技术原理&#xff1a;结合稀疏检索&#xff08;BM25&#xff09;与密集检索&#xff08;DPR&#xff09;&#xff0c;通过动态权重分配提升检索精度。例如&#xff0c;在医疗领域&#xff0c;BM25 负责精…

Rust 学习笔记:函数和控制流

Rust 学习笔记&#xff1a;函数和控制流 Rust 学习笔记&#xff1a;函数和控制流函数&#xff08;Function&#xff09;语句和表达式带返回值的函数注释控制流if 表达式使用 else if 处理多个条件在 let 语句中使用 if循环loop从循环中返回值循环标签消除多个循环之间的歧义带 …

c#加密证件号的中间部分,改为*号

前言 使用场景&#xff1a;在我项目中&#xff0c;我需要给前端提供接口&#xff0c;所以我要吧证件号进行加密。例如&#xff1a;411421199510225612&#xff0c;这是一个身份证号&#xff0c;18为的&#xff0c;那么我加密完成之后就会是 411421********5612&#xff0c;类似…

存储新势力:助力DeepSeek一体机

宝子们&#xff0c;今天要给大家分享一个超酷的科技话题——各大厂商陆续推出的DeepSeek训推一体机方案。 【集成人工智能训推平台】 它就像是一个超级智能的大脑中枢&#xff0c;为各种复杂的AI任务搭建AI模型流水线。预置算法模版、训练框架、推理框架、模型任务调度和自动…

同样机身尺寸下伺服电机比无刷电机扭矩更大的原因

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 在电机应用领域&#xff0c;伺服电机和无刷电机&#xff08;BLDC&#xff09;都是常见的动力源&#xff0c;但两者在性能上存在显著差异。尤其是在相同机身尺寸下&#xff0c;伺服电机的…

.dat 文件一般可以用什么打开

DAT文件是一种常见的文件格式,通常由多种应用程序生成。打开DAT文件的方法取决于其内容和生成它的软件。 使用文本编辑器 如果DAT文件是一个简单的文本文件,可以使用Windows的记事本或macOS的文本编辑器打开它。 右键点击文件 -> 选择“打开方式” -> 选择“记事本”…

Java实现加密(七)国密SM2算法的签名和验签(附商用密码检测相关国家标准/国密标准下载)

目录 一、国密标准中&#xff0c;关于SM2签名验签的定义二、SM2签名和验签的实现原理1. 前置知识2. 签名生成过程3. 验签过程4. 数学正确性证明5. 安全性与注意事项 三、带userId、不带userId的区别1. 核心区别2.算法区别(1) 哈希计算过程(2) 签名验签流程 四、Java代码实现1. …