8 年前发现 Tailwind 时我激动不已。当时完全不会组织 CSS 代码,Tailwind 给了我用现成系统的安全感。上礼拜我把几个网站从 Tailwind 迁移到了语义化 HTML + 原生 CSS,过程超有趣。
Tailwind 其实教了我很多:CSS reset、颜色调色板、字体刻度、utility class 都是值得保留的好概念。迁移时我仿照这些模式建立了自己的体系:
- CSS reset:直接复制 Tailwind 的 preflight。
- 组件化:每个组件一个 class,CSS 文件一对一,互不覆盖——类比 Vue/React 组件的思路。
- 颜色:全部集中在一个 file 里用 CSS 变量。
- 字体大小:从 Tailwind 搬来的 size-xs 到 size-4xl 变量。
- Utility 类:只保留极少数(如 .sr-only)。
- Base 样式:尽量少用,让组件自己管自己。
- 间距:用 owl selector 和「外边距由父组件负责」原则。
- 响应式:用 CSS Grid 的 auto-fit/minmax 代替一堆 media query。
- 构建:用 esbuild bundle(基于 web 标准,静态 Go 二进制)。
为什么离开 Tailwind?因为新版越来越依赖构建系统,而我一直在用 v2。原生 CSS 现在有 @import、嵌套选择器、Grid、color-mix、@scope,已经足够好用了。