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

通过 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.xdnf.cn/news/20395.html

相关文章:

  • Brain Stimulation | 状态依赖性刺激中的大脑网络动态:基于隐马尔可夫模型的EEG-TMS联合分析
  • 多态:面向对象编程的重要特性
  • CSS伪类
  • CSS 文件格式
  • 期货交易躲过AI捕杀—期货反向跟单策略
  • 基于PySide6与pyCATIA的圆柱体特征生成工具开发实战——NX建模之圆柱命令的参考与移植
  • 守护进程编程、GDB调试以及外网连接树莓派
  • 【数据结构】深入理解:完全二叉树中叶子节点与分支节点的数量关系推导
  • 每天学一个 Linux 命令(21):tree
  • Harmony5.0 设置应用全屏模式,隐藏导航栏和状态栏
  • 我的创作纪念日
  • HCIP-H12-821 核心知识梳理 (3)
  • 系统架构设计师:计算机组成与体系结构(如CPU、存储系统、I/O系统)高效记忆要点、知识体系、考点详解、、练习题并提供答案与解析
  • 4.3 熟悉字符串处理函数
  • 告别Feign:基于Spring 6.1 RestClient构建高可用声明式HTTP客户端
  • aop原理及场景
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年4月18日第56弹
  • 如何通过OTP动态口令登录Windows操作系统实现安全管控?安当SLA双因素认证的行业化解决方案
  • 《P2882 [USACO07MAR] Face The Right Way G》
  • AI Agent智能体是什么?如何使用?
  • Django 结合 Vue 实现简单管理系统的详解
  • vue3+axios下载哪后端返回错误信息并动态提示
  • 【学习笔记】Py网络爬虫学习记录(更新中)
  • thinkphp实现图像验证码
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(一级)真题
  • DDS Discovery数据
  • PM2模块
  • AI专题(一)----NLP2SQL探索以及解决方案
  • std::unordered_set(C++)
  • Java课程内容大纲(附重点与考试方向)