如何从Tailwind CSS v3升级到v4

梦墨同学_3226

梦墨同学_3226

2026-08-26

696人浏览

原创

tailwind css v4 是用 rust 重写的 oxide 引擎,需弃用 tailwind.config.js 中 theme 等配置、@tailwind 指令和 darkmode,改用 @import、@plugin、@custom-variant 和 @theme 等 css 指令,并确保 content 字段保留以支持类名检测。

如何从tailwind css v3升级到v4

不能只改 package.json 里的版本号,v4 是用 Rust 重写的全新引擎(Oxide),配置逻辑、插件机制、暗色模式、颜色定义全部推倒重来。直接升级会编译成功但样式全丢——因为类名根本没生成。

tailwind.config.js 不再主导构建流程

v4 的 Oxide 引擎默认不读 tailwind.config.js,它只扫描 CSS 文件里的 @import "tailwindcss" 和 @theme 指令。但 content 字段仍必须保留在 JS 配置里,否则开发时无法检测 HTML/JSX 中用到的类名。

  • 保留 tailwind.config.js,但只留 content 字段,删掉 theme、plugins、darkMode 等所有其他配置
  • 最小可用配置示例:
    module.exports = {
      content: ["./src/**/*.{js,jsx,ts,tsx}", "./public/**/*.html"]
    }
  • 如果你用的是 Django Tailwind 或 Vite 插件,确认它们已适配 v4 —— 旧版插件可能仍试图读取废弃字段,导致静默失效

@tailwind 指令全部废弃,改用 @import

v3 的三行 @tailwind base、@tailwind components、@tailwind utilities 在 v4 中完全无效。v4 只需一行 @import "tailwindcss",它会自动注入所有层级。

CSS婚礼策划服务机构宣传网站模板
CSS婚礼策划服务机构宣传网站模板

CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
  • 删掉旧 CSS 入口文件(如 src/index.css)里的三行 @tailwind 指令
  • 替换成单行:@import "tailwindcss";
  • 如果用了插件(如 @tailwindcss/forms),必须紧接在 @import 后写:@plugin "@tailwindcss/forms";
  • @plugin 必须带引号,且路径要和 npm 包名完全一致(比如不能写成 @plugin "@tailwindcss/forms@latest")

暗色模式必须手动声明 @custom-variant

v4 不再内置 dark: 变体,darkMode: 'class' 配置在 tailwind.config.js 里已彻底失效。漏配或错配会导致所有 dark:* 类在构建时被完全删除——DevTools 里搜不到对应 CSS 规则。

  • 在主 CSS 文件顶部添加:@custom-variant dark (&:where(.dark, .dark *));
  • HTML 根元素仍需加 class="dark",但切换必须操作 document.documentElement.classList,body 上加类无效
  • 初始化脚本必须内联在 里、CSS <link> 之前,用原生 IIFE,不能依赖 DOMContentLoaded 或框架生命周期
  • 别碰 data-theme —— v4 的 dark: 只认 .dark 类或媒体查询,不识别自定义属性

颜色和主题必须写进 CSS,不能放 config.js

v4 废弃了 theme.extend.colors 这套 JS 配置方式。所有颜色、间距、字体等主题变量,必须用 CSS 自定义属性(--color-primary)在 CSS 文件中声明,并通过 @theme 指令注入。

  • 删掉 tailwind.config.js 里所有 theme 相关配置
  • 在 CSS 入口文件中(@import 前)添加:
    @theme {
      --color-primary: #3b82f6;
      --spacing-4: 1rem;
    }
  • @theme 必须是顶层规则,不能嵌套在 @layer 或媒体查询里
  • 若项目用了 CSS 变量做主题切换(如 --theme-color),v4 不会自动映射到工具类,得靠 @apply 或额外插件补位

最容易被忽略的是:v4 的构建过程不报错,但缺失关键指令(如 @custom-variant 或 @theme)时,对应类名压根不会出现在最终 CSS 里。别只看终端是否 success,一定要打开 DevTools 检查元素上是否有生成的样式规则。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

4156

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

917

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

1778

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

3286

7

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

2023.08.10

6505

11

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

2023.08.10

5551

7

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

2023.08.21

1897

9

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

2023.08.22

2631

5

css禁止点击事件
css禁止点击事件

实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。本专题为大家提供点击事件相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2273

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.7万人学习

CSS教程
CSS教程

共754课时 | 95.3万人学习