Tailwind 4.3.5 修的全是「用久了才会遇到」的问题:color-mix 崩、WASM 卡死、几千个变体变慢
这个补丁版本没有新特性,但每一条都很具体:没有插值方式的 color-mix 不再崩、oxide 的 WASI 构建不再永久挂起、matchVariant 里几千个取值不再拖慢规范化。
11 月 6 日,Tailwind 发了 4.3.5。补丁版本,没有一句「新特性」。但这份修复清单我读得很舒服 —— 因为每一条都像是从别人的 issue 里捞出来的真事,而不是「提升开发者体验」这种话。

color-mix 不带插值方式就崩
CSS 里 color-mix() 的语法是 color-mix(in oklab, red 50%, blue)。如果你写的是 color-mix(var(--color-red-500)) 或者 color-mix(currentcolor 50%, transparent) —— 也就是没写插值方式 —— Tailwind 以前会崩,或者生成一个颜色完全错的兜底值。
这种 bug 的可怕之处在于它安静。构建通过、页面能开、颜色就是有点不对,然后你在设计评审里被问「这个灰是不是错了」。
WASI 构建会永久挂起
第二条:@tailwindcss/oxide-wasm32-wasi 以前会 hang forever,特别是在 NAPI_RS_FORCE_WASI=error 或者 WebContainers 这类环境里。现在它会正常加载。同一版还修了它在首次扫描后「检测不到新增/改动源文件」的问题。
WebContainer 这个场景值得单独说:在浏览器里跑 Node 的那套东西(StackBlitz 一类)是很多人「打开链接就能改一个 demo」的入口。构建工具在这里挂起,等于整条学习路径断掉。

几千个变体值不再拖慢规范化
第三条是性能:当项目里有大量「函数式变体取值」(比如一个 matchVariant 插件带几千个值)时,规范化(canonicalization)会明显变慢。
我真的见过这种项目:设计系统把间距、圆角、层级全部做成 matchVariant,取值表从上往下几百行。开发时没人觉得有问题,直到 HMR 开始有明显的停顿,才有人去查。
还有两条偏门但实用的
- 顶层规则之间的
<!--与-->被忽略,而不是报错或吞掉下一条规则(a { color: red } --> b { color: blue }这种) @tailwindcss/turbopack的 README 里去掉了as: '*.css',因为那行会让 CSS Modules 失效

为什么我为一个小补丁写一篇文章
因为「补丁版本的修复清单」是最诚实的工程记录。新特性发布会告诉你团队想做什么,补丁清单告诉你用户实际撞到了什么。
这一版撞到的三件事 —— 颜色错了、构建挂了、生成变慢 —— 恰好覆盖了 CSS 工具链的三类典型故障:正确性、可用性、性能。而它们全都是「在自己机器上跑不出来、在别人的项目里天天发生」的那种。

所以我的建议很朴素:升级。 4.3.5 没有新语法、没有破坏性变更,只有这几个「早知道就该修」的洞。

评论
…