mcpField
C
converting-css-to-tailwind

converting-css-to-tailwind

github.com/revitalb-port设计与 UI063 次安装10 周前更新
代码仓库

关于 converting-css-to-tailwind

将普通 CSS 迁移为 HTML 和组件标记中的 Tailwind 工具类,供开发者逐步处理规则、清理样式并检查视觉效果,同时识别应保留的自定义 CSS。

主要功能

  1. 01将 CSS 属性映射为 Tailwind 工具类
  2. 02处理响应式断点和状态
  3. 03必要时使用任意值
  4. 04识别应保留的自定义 CSS
  5. 05迁移后检查视觉效果

适用场景

  1. 01将组件从 CSS 迁移到 Tailwind
  2. 02将规则移入标记后移除样式表
  3. 03保留复杂选择器和字体定义

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/revitalb-port/skills-registry-demo --skill converting-css-to-tailwind

安装后在 Claude Code 中输入/converting-css-to-tailwind确认已加载。

详细介绍

将 CSS 转换为 Tailwind

将纯 CSS 文件迁移为直接应用于标记中的 Tailwind 工具类。

工作流

  1. 阅读 CSS 文件并列出每条规则
  2. 找到对应的标记(HTML、JSX、TSX、Vue、Svelte),查看哪些标记引用了每个选择器
  3. 使用下方的映射转换每条规则
  4. 所有属性都已用工具类表示后,删除 CSS 规则
  5. CSS 文件为空后,移除该文件(或导入语句)
  6. 验证页面外观是否完全一致,并检查是否存在视觉回归

转换参考

布局与盒模型
CSSTailwind
display: flexflex
display: gridgrid
display: nonehidden
position: relativerelative
position: absoluteabsolute
justify-content: centerjustify-center
align-items: centeritems-center
gap: 16pxgap-4
width: 100%w-full
max-width: 768pxmax-w-3xl
margin: 0 automx-auto
padding: 16pxp-4
overflow: hiddenoverflow-hidden
排版
CSSTailwind
font-size: 14pxtext-sm
font-weight: 700font-bold
line-height: 1.5leading-normal
text-align: centertext-center
text-transform: uppercaseuppercase
color: #333text-[#333] 或主题颜色
letter-spacing: 0.05emtracking-wide
背景与边框
CSSTailwind
background-color: #f5f5f5bg-[#f5f5f5] 或 bg-neutral-100
border: 1px solid #e5e7ebborder border-gray-200
border-radius: 8pxrounded-lg
box-shadow: 0 1px 3px ...shadow-sm
响应式 — 媒体查询
@media (min-width: 768px) { .card { flex-direction: row; } }

→ <div class="flex-col md:flex-row">

断点映射:sm:(640)、md:(768)、lg:(1024)、xl:(1280)、2xl:(1536)

伪类与状态
.btn:hover { background-color: #1d4ed8; }

→ <button class="hover:bg-blue-700">

前缀:hover:、focus:、active:、disabled:、first:、last:、odd:、even:、group-hover:、peer-checked:

动画与过渡
transition: all 0.2s ease-in-out;

→ transition-all duration-200 ease-in-out

@keyframes spin { ... }
animation: spin 1s linear infinite;

→ animate-spin(内置),或在 tailwind.config 中定义

自定义属性/任意值

对于没有对应工具类的属性,请使用任意值:

  • w-[calc(100%-2rem)]
  • grid-cols-[200px_1fr_1fr]
  • text-[clamp(1rem,2vw,1.5rem)]

处理剩余 CSS

有些内容无法仅通过工具类表达:

  • 复杂选择器(.parent > .child + .sibling)——调整标记结构,或将 @apply 作为最后手段
  • @font-face——保留在全局 CSS 文件或 globals.css 中
  • 复杂的 @keyframes——在 tailwind.config.ts 的 theme.extend.keyframes 下定义
  • CSS 变量——迁移为 tailwind.config.ts 中的 Tailwind 主题值

规则

  • 存在主题时,优先使用语义化 Tailwind 类(bg-primary),而不是任意十六进制值
  • 不要用 @apply 重建正在迁移的相同 CSS——这就失去了迁移的意义
  • 按逻辑对相关工具类分组:布局 → 间距 → 排版 → 颜色 → 效果
  • 如果一个组件有 10 个以上的工具类,请考虑提取为可复用组件,而不是 CSS 类

评论

支持 Markdown