Julia Evans 离开 Tailwind:重新学会用结构化的方式写 CSS

查看原文 HN 讨论

文章摘要

Julia Evans(jvns)把她名下几个网站从 Tailwind 迁回手写的、有组织的 vanilla CSS。八年前她离不开 Tailwind,是因为自己根本不会管理大量样式;八年过去,她意识到自己的 CSS 功力已经足以撑起项目,不需要再借助一个”工具类即设计系统”的框架。

她列出的离开理由很务实:Tailwind 越来越依赖完整的构建流水线,未压缩的 CSS 文件膨胀到了 2.8MB;做一些非常规设计时框架反而碍手碍脚;为了改一些边角又得在 Tailwind 和 vanilla CSS 之间来回切换,代码库变成混血儿。她还引用另一位作者的观点——“Tailwind 在贬值 CSS 这门手艺”——这一点她深有同感,与其租用别人的脚手架,不如真正把 CSS 学透。

文章的核心价值不在”离开”,而在她系统地说清自己留下了什么。她总结出九个组织维度:(1)reset 样式直接借 Tailwind 的 preflight;(2)按组件单独拆文件,避免互相污染;(3)颜色全部走 CSS 变量;(4)字号体系定义成 xs / sm / lg 等档位,每档配套行高(line-height);(5)保留少量 utility class(如 .sr-only);(6)尽量克制的 base styles;(7)用 section > *+* 这类选择器统一处理间距;(8)响应式优先用 CSS Grid 的 auto-fit,能不写 media query 就不写;(9)打包用 esbuild。

她想表达的核心是:Tailwind 的”系统”那套思维(design tokens、间距阶、字号阶)非常值得保留,但你完全可以把它装回到原生 CSS 里。框架只是其中一种实现方式。

HN 评论精华