在vue项目里 tailwindcss和tailwindcss-theming 实现网页换肤

本文主要是介绍在vue项目里 tailwindcss和tailwindcss-theming 实现网页换肤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

tailwindcss介绍

相关安装和文档介绍请参考官网
使用感受:

  • 避免定义less变量,导致变量在scoped作用域不生效,从而产生多余样式文件
  • 避免class名的冲突,让用户快速构建项目

tailwindcss-theming介绍

相关安装和文档介绍请参考文档

使用步骤

  • 安装 Tailwind
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
  • 安装 tailwindcss-theming
npm i -D tailwindcss-theming@next
  • 创建tailwind.config.js
npx tailwindcss init 

内容大致如下:

const { tailwindConfig } = require('./src/tailwindTheme')
// tailwindConfig 基本按照官方网的配置,就不一一举例了
module.exports = {content: [],purge: ['./src/**/*.html', './src/**/*.vue'theme: {extend: {...tailwindConfig},},plugins: [require('tailwindcss-theming')({variants: {dark: true,light: true}})],
}
  • 创建postcss.config.js 添加postcss 作为样式解析 内容大致如下
module.exports = {plugins: [require('tailwindcss'),require('autoprefixer'),...process.env.NODE_ENV === 'production'? [require('cssnano')]: []]
}
  • 创建theme.config.js 用于对主题的设置,设置对浅色和深色的变量引用,内容大概设置如下
const { baseTheme } = require('./src/tailwindTheme/light')const { darkTheme } = require('./src/tailwindTheme/dark')
const { ThemeManager } = require('tailwindcss-theming/api');
module.exports = new ThemeManager().setDefaultTheme(baseTheme).setDefaultDarkTheme(darkTheme)
  • 创建tailwindTheme 目录,里面添加对深色和浅色变量的设置,比如:light.js
const { Theme } = require('tailwindcss-theming/api')
const light = {'m-900': '#3370FF','m-a': 'rgb(30,128,255)',
}
const baseTheme = new Theme().setName('light').targetable().addColors(light).addOpacityVariant('100', 0.1, 'm-a')module exports baseTheme;

这样m-900 就会被解析到[data-theme=‘light’]里,变成css变量,我们就可以直接写样式引用
比如

<div class="w-120 h-12 bg-m-900"></div>

在这里插入图片描述

  • 同样的方式在dark.js里添加对应的变量,样式输出时就自动会解析到[data-theme=‘dark’]里,我们只需要在body上改变属性[data-theme],把它变成light/dark就可以实现深色和浅色模式的切换
  • 改变配置项记得重启服务,不然可能会导致配置不生效

这篇关于在vue项目里 tailwindcss和tailwindcss-theming 实现网页换肤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290287

相关文章

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT