关于 tailwindcss-best-practices
tailwindcss-best-practices 是面向现有项目使用 Tailwind CSS v4 的参考技能,涵盖集成选择、CSS 优先规范、迁移注意事项和样式变更验证。
主要功能
- 01项目与集成检查指南
- 02CSS 优先的 v4 指令与主题
- 03工具类选择和类名检测指南
- 04v3 到 v4 的迁移说明
- 05构建、Lint 与界面验证步骤
适用场景
- 01在项目中接入 Tailwind CSS v4
- 02将样式从 Tailwind v3 迁移
- 03排查工具类检测和构建配置问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ biggora/ claude-plugins-registry --skill tailwindcss-best-practices安装后在 Claude Code 中输入/tailwindcss-best-practices确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/best-practices-utility-patterns.mdcore-installation.mdcore-preflight.mdcore-responsive.mdcore-source-detection.mdcore-theme.mdcore-utility-classes.mdcore-variants.mdeffects-form-controls.mdeffects-mask.mdeffects-scroll-snap.mdeffects-scrollbars.mdeffects-text-shadow.mdeffects-transition-animation.mdeffects-visibility-interactivity.mdfeatures-content-detection.mdfeatures-custom-styles.mdfeatures-dark-mode.mdfeatures-functions-directives.mdfeatures-upgrade.mdlayout-aspect-ratio.mdlayout-columns.mdlayout-display.mdlayout-flexbox.mdlayout-grid.mdlayout-height.mdlayout-inset.mdlayout-logical-properties.mdlayout-margin.mdlayout-min-max-sizing.md详细介绍
Tailwind CSS v4 最佳实践
文档快照:Tailwind CSS v4.3.3,已于 2026-08-29 根据 npm
latest标签和官方文档核验。用户询问最新版本时,请重新检查 https://tailwindcss.com/docs 和 npm 标签。
Tailwind v4 以 CSS 为先:@theme 用于定义设计令牌,@utility 用于注册工具类,@custom-variant 用于注册变体。仍可通过 @config 使用旧版 JavaScript 配置,但系统不会自动检测它,而且部分 v3 选项不受支持。
工作方法
- 编辑前检查项目。 确认已安装的
tailwindcss版本、包管理器、构建集成、主 CSS 入口、旧版配置或插件、源码根目录,以及现有设计令牌和组件。不要仅仅因为本文档介绍了较新版本,就升级项目。 - 选择与技术栈相匹配的集成方式。 如果框架提供官方指南,请优先采用。基于 Vite 的技术栈使用
@tailwindcss/vite,基于 PostCSS 的技术栈(例如 Next.js)使用@tailwindcss/postcss,将@tailwindcss/webpack用作 webpack 加载器,或使用@tailwindcss/cli进行独立构建。更改构建配置前,请阅读安装指南。 - 选择满足需求的最精简样式机制。 优先使用现有工具类或组件;真正只用一次的情况使用任意值;重复使用某个设计值时添加
@theme令牌;仅在需要可复用的 CSS 功能时添加@utility;对于第三方样式覆盖或用 CSS 表达更清晰的规则,使用自定义 CSS。 - 确保候选类可静态检测。 将属性和状态映射到完整的类名字符串。不要拼接片段,例如
`bg-${color}-500`。有关 monorepo、外部包、排除项和安全列表,请阅读源码检测。 - 保留现有设计系统。 复用现有的间距、颜色、排版、圆角、组件和类合并约定。已有匹配的令牌时,避免引入任意值。
- 验证实际效果。 运行相关的构建、类型检查、Lint 和测试;如果检测结果存在疑问,请确认预期工具类已出现在编译后的 CSS 中;在适用时,检查渲染后的 UI 在响应式布局、状态、深色模式、焦点和减少动态效果方面的表现。
v4.3 新增内容
| 功能 | 用途 |
|---|---|
| 滚动条 | 使用 scrollbar-auto、scrollbar-thin、scrollbar-none、scrollbar-thumb-*、scrollbar-track-* 和 scrollbar-gutter-*;参见滚动条 |
| 容器尺寸 | 当查询或容器单位需要块尺寸信息时,使用 @container-size 或 @container-size/{name};参见响应式设计 |
| 缩放 | 使用 zoom-*、zoom-[value] 和 zoom-(--property) 设置 CSS zoom;参见变换 |
| 制表符宽度 | 使用 tab-*、tab-[value] 和 tab-(--property) 设置渲染后的制表符宽度;参见排版 |
| CSS 中的变体 | 使用 @variant hover:focus 叠加变体,使用 @variant hover, focus 共享代码块 |
| 函数式工具类 | 当不带参数的工具类需要回退值时,在 --value(...) 或 --modifier(...) 中使用 --default(...);参见函数和指令 |
v4 迁移中的关键注意事项
这是使用 Tailwind v4 时最常见的错误。如果你正在从 v3 迁移,或是首次使用 v4,请阅读升级指南——以下是最容易踩的坑:
| v3(旧版) | v4(正确写法) | 变更原因 |
|---|---|---|
!bg-red-500 | bg-red-500! | Important 修饰符从前缀移到了后缀 |
bg-opacity-75 | bg-red-500/75 | 不再使用不透明度修饰符;改用颜色上的斜杠语法 |
shadow | shadow-sm | 阴影刻度下移一级 |
shadow-sm | shadow-xs | 阴影刻度下移一级 |
rounded | rounded-sm | 边框圆角刻度下移一级 |
rounded-sm | rounded-xs | 边框圆角刻度下移一级 |
ring | ring-3 | 默认环形宽度从 3px 改为 1px |
outline-none | outline-hidden | 重命名以提升清晰度 |
flex-shrink-0 | shrink-0 | 现在仅保留更短的别名形式 |
flex-grow | grow | 现在仅保留更短的别名形式 |
overflow-ellipsis | text-ellipsis | 重命名以保持一致 |
blur | blur-sm | 模糊刻度下移一级 |
@tailwind base/components/utilities | @import "tailwindcss" | 单个 CSS 导入取代三条指令 |
自动检测 tailwind.config.js | CSS 优先指令,或使用显式的 @config 以保持兼容性 | 不再自动检测 JS 配置 |
darkMode: 'class' | @custom-variant dark (&:where(.dark, .dark *)); | 深色模式配置移至 CSS |
bg-[--var] | bg-(--var) | CSS 变量任意值使用圆括号 |
theme(screens.xl) | theme(--breakpoint-xl) | 主题函数使用 CSS 变量名称 |
@layer utilities { } | @utility name { } | 自定义工具类使用专用指令 |
start-* / end-* | inset-s-* / inset-e-* | 在 v4.2 中弃用 |
核心参考
| 主题 | 描述 | 参考 |
|---|---|---|
| 安装 | Vite、PostCSS、Webpack、CLI 和 CDN 设置 | core-installation |
| 工具类 | 了解 Tailwind 的工具优先方法 | core-utility-classes |
| 主题变量 | 设计令牌、@theme 指令、主题变量命名空间 | core-theme |
| 响应式设计 | 移动优先断点、响应式变体、容器查询 | core-responsive |
| 变体 | 使用状态、伪类、媒体查询和指针变体进行条件样式设置 | core-variants |
| Preflight | Tailwind 的基础样式,以及如何扩展或禁用它们 | core-preflight |
| 源码检测 | Tailwind 如何检测类、@source、@source not、@source inline() | core-source-detection |
布局
显示、Flexbox 与 Grid
| 主题 | 描述 | 参考 |
|---|---|---|
| 显示 | flex、grid、block、inline、hidden、sr-only、flow-root、contents | layout-display |
| Flexbox | flex-direction、justify、items、gap、grow、shrink、wrap、order | layout-flexbox |
| Grid | grid-cols、grid-rows、gap、place-items、col-span、row-span、subgrid | layout-grid |
| 宽高比 | 控制元素宽高比以适配响应式媒体 | layout-aspect-ratio |
| 分栏 | 用于杂志风格或瀑布流布局的多栏布局 | layout-columns |
定位
| 主题 | 描述 | 参考 |
|---|---|---|
| 位置 | 使用 static、relative、absolute、fixed 和 sticky 控制元素定位 | layout-position |
| 内偏移 | 使用 inset、逻辑内偏移(inset-s-*、inset-bs-*)和已弃用的 start-*/end-* 设置定位元素的位置 | layout-inset |
尺寸
| 主题 | 描述 | 参考 |
|---|---|---|
| 宽度 | 使用间距刻度、分数、容器尺寸和视口单位设置元素宽度 | layout-width |
| 高度 | 使用间距刻度、分数和视口单位设置元素高度 | layout-height |
| 最小和最大尺寸 | min-width、max-width、min-height、max-height 约束 | layout-min-max-sizing |
| 逻辑尺寸 | 适配书写模式的尺寸:inline-*、block-*、min-inline-*、max-block-*(v4.2) | layout-logical-properties |
间距
| 主题 | 描述 | 参考 |
|---|---|---|
| 外边距 | 使用间距刻度、负值和逻辑属性(mbs-*、mbe-*)设置外边距 | layout-margin |
| 内边距 | 使用间距刻度和逻辑属性(pbs-*、pbe-*)设置内边距 | layout-padding |
溢出
| 主题 | 描述 | 参考 |
|---|---|---|
| 溢出 | 控制元素如何处理溢出的内容 | layout-overflow |
图像和替换元素
| 主题 | 描述 | 参考 |
|---|---|---|
| 对象适配和位置 | 控制图像和视频的缩放与定位方式 | layout-object-fit-position |
表格
| 主题 | 描述 | 参考 |
|---|---|---|
| 表格布局 | border-collapse、table-auto、table-fixed | layout-tables |
变换
| 主题 | 描述 | 参考 |
|---|---|---|
| 变换基础 | 基础变换工具、硬件加速和自定义变换值 | transform-base |
| 平移 | 使用间距刻度和百分比沿 x、y、z 轴平移元素 | transform-translate |
| 旋转 | 在 2D 和 3D 空间中旋转元素 | transform-rotate |
| 缩放 | 均匀缩放元素或沿特定轴缩放 | transform-scale |
| 倾斜 | 沿 x 和 y 轴倾斜元素 | transform-skew |
排版
| 主题 | 描述 | 参考 |
|---|---|---|
| 字体和文本 | 字号、字重、颜色、行高、字母间距、装饰、截断、wrap-break-word、wrap-anywhere | typography-font-text |
| 文本对齐 | 使用左对齐、居中、右对齐和两端对齐控制文本对齐方式 | typography-text-align |
| 列表样式 | 用于项目符号和标记的 list-style-type、list-style-position | typography-list-style |
视觉
| 主题 | 描述 | 参考 |
|---|---|---|
| 背景 | 背景颜色、渐变、图像、大小、位置 | visual-background |
| 边框 | 边框宽度、颜色、圆角、分隔线、环形、块级边框工具类(border-bs-*、border-be-*) | visual-border |
| 效果 | 盒子阴影、不透明度、混合模式、背景模糊、滤镜、彩色投影 | visual-effects |
| SVG | SVG 和图标样式的填充、描边、描边宽度 | visual-svg |
| 文本阴影 | 文本阴影尺寸、颜色和不透明度修饰符(v4.1) | effects-text-shadow |
| 遮罩 | 可组合的遮罩工具类,支持渐变和径向遮罩(v4.1) | effects-mask |
| 滚动条 | 宽度、滑块/轨道颜色和稳定间隔工具类(v4.3) | effects-scrollbars |
效果与交互
| 主题 | 描述 | 参考 |
|---|---|---|
| 过渡与动画 | CSS 过渡、动画关键帧、减少动态效果 | effects-transition-animation |
| 可见性与交互性 | 可见性、光标、指针事件、用户选择、z-index | effects-visibility-interactivity |
| 表单控件 | accent-color、appearance、caret-color、resize | effects-form-controls |
| 滚动捕捉 | 用于轮播的 scroll-snap-type、scroll-snap-align | effects-scroll-snap |
功能
深色模式
| 主题 | 描述 | 参考 |
|---|---|---|
| 深色模式 | 使用 dark: 变体、@custom-variant、类和数据属性策略实现深色模式 | features-dark-mode |
迁移
| 主题 | 描述 | 参考 |
|---|---|---|
| 升级指南 | 从 v3 迁移到 v4、所有重命名/移除的工具类、比例变化、配置迁移 | features-upgrade |
自定义
| 主题 | 描述 | 参考 |
|---|---|---|
| 自定义样式 | 添加自定义样式、使用 @utility 定义工具类、使用 @custom-variant 定义变体、任意值 | features-custom-styles |
| 函数与指令 | Tailwind 的 CSS 指令(@theme、@utility、@custom-variant、@source)和函数 | features-functions-directives |
| 内容检测 | Tailwind 如何检测类、@source 配置、使用 @source inline() 将类加入安全列表 | features-content-detection |
最佳实践
| 主题 | 描述 | 参考 |
|---|---|---|
| 工具类模式 | 管理重复、冲突、important 修饰符、何时使用组件 | best-practices-utility-patterns |
关键建议
- 优先使用工具类和现有组件,而不是新建抽象层。
- 使用
@theme定义可复用的设计令牌;对于不应生成工具类的 CSS 变量,使用:root。 - 将无前缀的响应式工具类作为移动端基准,并将断点变体用作覆盖样式。
- 在源代码中保留完整的候选字符串;将动态输入映射到静态类列表。
- 使用
@custom-variant定义变体,并使用@variant在 CSS 中应用现有变体。 - 新的 v4 项目优先采用 CSS 优先配置;仅在兼容性需要时保留
@config或@plugin。 - 为断点使用一致的单位;官方默认使用
rem,混用单位可能导致排序异常。 - 不要在生产环境中使用 Play CDN,也不要在 Tailwind v4 前置添加 Sass/Less/Stylus。
评论
支持 Markdown