Tailwind CSS v4 实战:从抵触到真香的心路历程

Tailwind CSS v4 in Practice: From Skepticism to Full Adoption

| Kevin Liu | 2026-08-12T16:36:29

之前一直觉得 Tailwind 就是内联样式换了个写法。用了 v4 之后真香了。这篇分享转变的原因和实战经验。

From skepticism to full adoption of Tailwind CSS v4, sharing the turning points and practical experience.

## 之前为什么抵触 说实话,我之前对 Tailwind 的看法是负面的: 1. **"这不就是内联样式吗?"** `class="mt-4 px-6 py-2 bg-blue-500"` 和 `style="margin-top:16px; padding:6px 24px"` 有啥区别? 2. **HTML 太丑了**:一个按钮的 class 写了一整行,可读性极差 3. **不语义化**:`bg-blue-500` 比 `btn-primary` 差远了 但在新项目里被迫用了 Tailwind v4 之后,我的看法完全变了。 ## 转变的关键点 ### 1. 设计系统的约束 Tailwind 不是"随便写数值",它是一套**设计系统的约束**。 ```html ``` 这意味着整个项目的间距、颜色、字号都是一致的。不会出现有的地方 `margin: 13px` 有的地方 `margin: 15px` 的混乱。 这是我最大的认知转变:**Tailwind 不是内联样式,它是 Design Token 的实现方式**。 ### 2. v4 的 CSS-first 配置 v4 最大的变化是配置从 JS 迁移到了 CSS: ```css @theme { --color-primary: #3b82f6; --color-primary-dark: #2563eb; --font-sans: "Inter", sans-serif; --breakpoint-sm: 640px; --breakpoint-md: 768px; } ``` 不需要 `tailwind.config.js` 了!配置就是 CSS 变量,IDE 支持更好,理解成本更低。 ### 3. 响应式和状态变体 这是 Tailwind 真正的杀手级特性: ```html ``` 一行代码搞定:默认样式 + 悬停状态 + 响应式适配 + 暗色模式 + 禁用状态。 如果用传统 CSS,这需要写多少行? ```css .btn { background: #3b82f6; font-size: 14px; padding: 0 16px; } .btn:hover { background: #2563eb; } @media (min-width: 768px) { .btn { font-size: 16px; padding: 0 24px; } } @media (prefers-color-scheme: dark) { .btn { background: #1d4ed8; } } .btn:disabled { opacity: 0.5; } ``` 5 个选择器 vs 1 行 class。而且 CSS 版本还得想类名。 ### 4. 组件化后 HTML 不丑 "HTML 太丑"是因为你把 Tailwind 用在了裸 HTML 上。在组件化框架(React/Vue)里完全不是问题: ```jsx function Button({ children, variant = 'primary' }) { const styles = { primary: 'bg-blue-500 hover:bg-blue-600 text-white', secondary: 'bg-gray-200 hover:bg-gray-300 text-gray-800', }; return ( {children} ); } ``` 组件封装后,使用方只需要 `` ,看不到那些 utility class。 ## v4 新特性亮点 1. **Lightning CSS 引擎**:构建速度比 v3 快 10 倍 2. **自动内容检测**:不需要配置 `content` 路径了 3. **CSS-first 配置**:`@theme` 替代 `tailwind.config.js` 4. **容器查询支持**:`@container` 原生支持 5. **3D 变换**:`rotate-x-45` `perspective-500` 等 3D utility ## 什么项目适合 - **适合**:组件化的中大型项目、设计系统驱动的项目、需要快速迭代的项目 - **不太适合**:内容型网站(CMS 输出的 HTML)、需要大量自定义动画的项目 ## 最终感受 从抵触到真香,关键转变是理解了 Tailwind 的定位:它不是 CSS 的替代品,而是**设计系统的实现工具**。如果你也在犹豫要不要用,建议先在一个小项目里试试 v4,体验一下再做决定。


Initially skeptical of Tailwind CSS ('just inline styles'), but v4 changed my perspective. Key realizations: Tailwind is a design system constraint (not arbitrary values), responsive/state variants are killer features (5 CSS selectors → 1 class line), component encapsulation eliminates ugly HTML concerns. V4 highlights: Lightning CSS engine (10x faster), CSS-first @theme configuration, automatic content detection, native container queries.

← Back to News