Tailwind CSS v4升级需重写配置:tailwind.config.js仅保留content字段,用@import "tailwindcss"替代三行@tailwind指令,@custom-variant声明暗色模式,插件改用@plugin导入,且所有主题、变体、插件逻辑必须移至CSS文件中。

tailwind.config.js 里只留 content 字段
升级后 tailwind.config.js 不再驱动样式生成,Oxide 引擎默认忽略它——但 content 字段必须保留,否则开发时无法扫描 HTML/JSX 中用到的类名,导致热更新失效或生产构建漏类。
常见错误是删掉整个配置文件,或保留 theme、plugins 等字段,结果这些配置完全不生效,还容易引发误导性报错。
- 删掉
theme、darkMode、plugins、contentSecurityPolicy等所有字段 - 只保留
content数组,路径格式与 v3 一致(如["./src/**/*.{js,jsx,ts,tsx}"]) - 如果项目用了自定义路径(比如 Astro 的
src/pages/**/*.astro),照旧写进去,Oxide 仍依赖这个列表做内容发现
@import "tailwindcss" 替代三行 @tailwind 指令
v4 废弃了 @tailwind base、@tailwind components、@tailwind utilities,它们不再被识别。CSS 文件里若还留着这三行,构建会静默跳过,最终输出空 CSS 或缺失基础样式。
正确做法是一行 @import "tailwindcss",它自动注入全部层级,且顺序可控(比如可放在自定义 reset 之后、插件之前)。
立即学习“前端免费学习笔记(深入)”;
- 在主 CSS 入口(如
src/index.css)顶部删除旧的三行@tailwind指令 - 替换为单行
@import "tailwindcss";(注意分号不能省) - 确保这行在所有
@plugin和@theme之前,否则插件可能拿不到基础层
@custom-variant dark 必须手动声明
v4 移除了内置 darkMode: 'class' 支持,直接保留 v3 的 dark: 类不会触发任何变体逻辑,dark:bg-black 全部失效。
必须用 @custom-variant 显式注册,并配合 :where() 防止选择器权重爆炸——否则 .dark .card 这类结构会被覆盖。
- 在 CSS 文件顶部(
@import "tailwindcss"后)加一行:@custom-variant dark (&:where(.dark, .dark *)); - HTML 根元素仍需有
class="dark",和 v3 一样,没有额外 JS 初始化 - 不要写
@custom-variant dark (&.dark)—— 缺少:where()会导致样式优先级高于你写的其他类,调试时极难定位
@plugin 导入插件,且版本要对齐
v4 插件系统彻底重写,旧版 plugins: [require('@tailwindcss/forms')] 在 JS 配置中完全无效。插件必须通过 @plugin 指令在 CSS 文件中导入,且必须使用 v4 兼容版本(如 @tailwindcss/forms@v4.x)。
常见坑是 npm 升级了 tailwindcss 但没升级插件,导致 @plugin "@tailwindcss/forms" 报错“plugin not found”或 silently no-op。
- 确认插件已安装 v4 版本:
npm list @tailwindcss/forms输出应含^4.0.0 - 在 CSS 文件中紧接
@import "tailwindcss"后写:@plugin "@tailwindcss/forms"; - 多个插件按需逐行写,顺序影响层叠(例如
@plugin "@tailwindcss/typography"应在 forms 之后,避免被覆盖)
tailwind.config.js 里塞东西,结果白改半天。


















