← [ BACK_TO_NOTES ]

Tailwind 样式复用策略

在重复 utility 出现时如何用组件抽取、变体 props 与有限抽象保持可维护性。

#concept #growing #frontend #css

[!info] related notes

Tailwind 样式复用策略

这个概念为什么出现

当相同 UI 需要一起演进时,散落的重复标记会增加修改成本。少量相似 class 本身不代表已经需要抽象。

[!abstract] 一句话理解 重复 UI 抽组件;重复 token 进 theme;谨慎 @apply 回到 CSS 间接层。

按重复内容选择复用方式

  1. UI 结构和行为重复:组件或模板
  2. 有限外观差异:用 size / tone 映射完整类名
  3. 多处共享的设计值:主题 token
  4. 无法控制标记的第三方组件等场景:普通 CSS 或适量 @apply

反模式

  • 过早 @apply 造语义类海洋
  • 无约束字符串拼接
  • 拼接类名片段,如 bg-${color}-600;构建时没有完整候选类,无法生成对应 CSS

条件分支可以包含完整类名,例如 active ? 'bg-blue-600' : 'bg-gray-600'。扫描器关心类名是否完整地出现在被扫描源码中,不是禁止 if/else。

v4 中,在 Vue / Svelte 的独立样式块或 CSS Modules 使用 @apply 时,可能需要 @reference 引用定义主题的主样式表;它只提供编译上下文,不重复输出那份 CSS。

本节总结

复用发生在组件与 token,不在“再发明一套 BEM 外壳”的自动反射。

自测题

  1. 三处相同按钮该怎么办?
参考答案

若三处属于同一组件并需统一变化,可抽 Button 组件;如果只是偶然外观相似,保留重复或先共享 token,避免把不同职责绑在一起。

参考

创建于 2026/7/15 更新于 2026/10/17
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本