Tailwind CSS v4.0 带来了大量新特性,旨在提升开发效率,优化性能,并为开发者提供更多的创意空间。此次发布不仅提升了性能,还引入了更强大的实用工具、改进的配置选项和增强的设计工具。借助这些更新,使用 Tailwind 构建现代化、可扩展的 Web 应用变得更加轻松。
主要亮点
性能提升
Tailwind CSS v4.0 最大的亮点之一是性能显著提升。经过全面优化,框架的构建速度大幅加快。具体来说,以下是性能的提升情况:
- 完整构建:从 378 毫秒降至 100 毫秒,速度提升了 3.78 倍
- 增量构建(新增 CSS):从 44 毫秒降至 5 毫秒,提升了 8.8 倍
- 增量构建(无新增 CSS):从 35 毫秒降至 192 微秒,提升了 182 倍
这些改进使得在处理大型项目时,开发工作流程更加流畅和高效。
CSS 优先配置
v4.0 引入了 CSS 优先的配置方式,允许开发者直接在 CSS 文件中配置设计令牌、断点等,而无需在 tailwind.config.js
文件中进行设置。这简化了配置流程,使得开发过程更加直观。
@import "tailwindcss";
@theme {
--font-display: "Satoshi", "sans-serif";
--breakpoint-3xl: 1920px;
--color-avocado-100: oklch(0.99 0 0);
--color-avocado-200: oklch(0.98 0.04 113.22);
}
此外,Tailwind 现在支持原生 CSS 层叠(cascade layers),这使得开发者能更好地控制样式的加载顺序,避免较高层的样式无意中覆盖较低层的样式,从而使 CSS 输出更加可预测且有序。
设计令牌与动态间距
v4.0 引入了设计令牌作为 CSS 变量,增强了运行时的灵活性。颜色、字体、断点等现在可以作为 CSS 变量定义,并在整个项目中动态引用。
:root {
--font-display: "Satoshi", "sans-serif";
--color-avocado-100: oklch(0.99 0 0);
}
通过使用设计令牌,开发者可以轻松地在全站范围内进行统一管理,并确保样式的一致性。
原生 CSS 层叠
Tailwind v4.0 增强了对 CSS 层叠的支持,允许开发者对样式的层次顺序进行更精细的控制,确保上层的样式不会无意中覆盖下层的样式。这一特性进一步提升了 CSS 输出的组织性和可维护性。
@layer theme {
:root {
--font-sans: ui-sans-serif, system-ui, sans-serif;
}
}
@layer base {
* {
box-sizing: border-box;
margin: 0;
}
}
@layer utilities {
.pointer-events-none {
pointer-events: none;
}
}
自动源文件检测
v4.0 自动检测 HTML 和 JavaScript 等文件,省去了手动配置内容源的麻烦。如果某些文件未被自动检测到,开发者可以通过 @source
指令手动添加。
内置导入与 CSS 转译
不再需要第三方插件(如 postcss-import),Tailwind 现在原生支持导入额外的 CSS 文件,显著提升了构建速度并简化了配置流程。此外,内置的 Lightning CSS 进行 CSS 转译,自动处理供应商前缀、压缩和现代 CSS 特性的转译,免去了使用 autoprefixer 和 postcss-preset-env 的需求。
简化主题配置
v4.0 简化了主题配置,去除了需要手动设置的某些实用工具(如 grid-cols-12
或 opacity-70
)。这些工具现在开箱即用,开发者可以将精力集中在核心设计令牌(如字体、颜色和断点)上。
<div class="grid grid-cols-73">
<div>1</div>
<!-- ... -->
<div>73</div>
</div>
简化的变量颜色
Tailwind v4.0 提供了 color-mix()
函数,自动处理透明度修饰符,简化了复杂的颜色操作,减少了需要使用变通方法的情况。
@theme {
--color-primary: var(--color-blue-500);
--color-error: var(--color-red-500);
}
新的高级实用工具和配置更新
v4.0 引入了新的渐变工具,简化了渐变的创建过程,包括:
- 线性渐变(
bg-linear-45
) - 径向渐变(
bg-radial-[at_25%_25%]
) - 圆锥渐变(
bg-conic-[in_hsl_longer_hue]
)
同时,Tailwind 还支持 3D 变换,如 rotate-x-*
、rotate-y-*
和 scale-z-*
,让开发者可以创建更加复杂的 3D 效果。此外,Z 轴的变换(如 scale-z-50
、translate-z-0
)也为开发更具沉浸感的动态布局提供了便利。
扩展的变体和选择器
v4.0 带来了更多动态样式的变体,例如:
- @starting-style:当元素首次出现时触发动画。
- **not-**:在条件为假时应用样式。
- **in-***:根据元素状态(无须父元素)应用样式。
改进的颜色与排版控制
v4.0 对渐变的处理进行了大幅优化,允许开发者更好地控制颜色、角度和插值方式。具体变体包括:
- bg-linear-45:应用 45 度角的线性渐变,创建颜色之间的对角过渡。
- bg-linear-to-r/srgb:使用 sRGB 插值方式,使渐变过渡更加平滑。
- bg-linear-to-r/oklch:使用 OKLCH 插值,提供更生动的渐变效果。
- **bg-conic-[in_hsl_longer_hue]**:应用更宽色域的圆锥渐变,产生更复杂的渐变效果。
3D 变换和视角控制
v4.0 引入了用于控制 3D 变换和视角的新工具,使得开发者可以创建更具沉浸感的视觉效果。比如:
- perspective-normal:设置 500px 的默认视角深度,创建自然的 3D 效果。
- perspective-distant:将视角深度调整为 1200px,产生更为微妙的 3D 效果。
- backface-visible 和 backface-hidden:分别控制元素在旋转时的背面可见性。
UI 和表单元素增强
v4.0 提供了一些新的实用工具,用于简化表单控件的处理,尤其是在处理不同输入类型或用户偏好时:
- field-sizing-content:根据内容调整文本区域的大小,随着用户输入自动调整。
- field-sizing-fixed:设置文本区域的固定大小,防止其因内容变化而自动调整。
- scheme-light 和 scheme-dark:分别为亮色和暗色主题的表单控件提供样式支持。
字体拉伸工具
v4.0 添加了新的字体拉伸工具,使开发者可以更精细地控制可变字体的宽度:
- font-stretch-normal:设置字体宽度为默认值。
- font-stretch-expanded:扩展字体宽度,产生更拉伸的效果。
- **font-stretch-150%**:将字体宽度设置为正常宽度的 150%,使其更具视觉冲击力。
可组合的新变体
Tailwind v4.0 引入了可组合的变体,例如 group-*
、peer-*
和 not-*
,它们允许根据父元素或兄弟元素的状态应用样式。例如,group-has-[&[data-potato]]:opacity-100
会在父元素中存在 data-potato
属性时应用样式。
Tailwind 配置改进
v4.0 进一步增强了配置的灵活性,开发者可以:
- 在
@theme
指令内定义自定义动画和关键帧。 - 更轻松地覆盖默认主题设置。
- 直接在配置文件中控制断点。
版本 4.0 的重大变更
移除已废弃的工具类
v4.0 移除了过时的 bg-opacity-*
和 text-opacity-*
类,取而代之的是新的透明度修饰符,如 bg-black/50
,使得透明度的管理更加直观。
更新阴影和模糊的缩放
为了与其他阴影工具保持一致,shadow
工具类已经改名为 shadow-sm
。此外,新增了中等和大号阴影(shadow-md
和 shadow-lg
)来保持统一的语义。
更新边框颜色和圆环宽度
Tailwind v4.0 更新了边框颜色的默认值,现为 currentColor
,意味着边框颜色会继承自文本颜色。同时,默认的圆环宽度也调整为 3px(ring-3
),统一了圆环的大小。
总结
Tailwind CSS v4.0 带来了众多令人兴奋的功能,使开发者可以更加高效地构建高性能、视觉震撼的网页。无论是通过优化后的构建引擎,简化的配置选项,增强的渐变工具,还是更强大的 3D 变换能力,这一版本都让 Tailwind 更加完善。借助这些新工具和功能,无论是小型项目还是大型应用,开发者都可以更加迅速和高效地创建响应式、动态的设计。