配置进了 CSS
Tailwind v4 不再需要 tailwind.config.js。主题直接写在 CSS 里:
@theme inline {
--color-surface: var(--brand-surface);
--radius-card: 12px;
}
@theme 会自动生成对应的工具类,命名空间决定前缀:--color-* 生成 bg-* 和 text-*,--radius-* 生成 rounded-*。
inline 是什么意思
@theme inline 会把值直接内联进生成的工具类,而不是让它引用一层变量。当令牌本身是 var(...) 时,这是必要的,否则会出现间接引用链带来的意外覆盖。
迁移检查表
- 颜色一定要用语义命名,不要沿用
gray-100这种位置命名 - 字阶记得同时给出
--text-*--line-height - 圆角、间距能用令牌就用令牌,别在组件里写魔法数字
结论
配置语言的改变其实是个好事:设计令牌和样式产出终于在同一个文件里了,评审时不需要来回跳。