mcpField
C
converting-css-to-tailwind

converting-css-to-tailwind

github.com/spencerpauly设计与 UI868428 次安装13 周前更新
代码仓库

关于 converting-css-to-tailwind

为将普通 CSS 迁移到 Tailwind 工具类提供操作指南,面向维护 HTML、JSX、Vue 等标记的开发者。涵盖规则映射、无法直接迁移的样式处理及视觉回归检查。

主要功能

  1. 01盘点 CSS 规则并定位对应标记
  2. 02将布局、字体和边框映射为工具类
  3. 03处理响应式规则与交互状态
  4. 04保留复杂选择器等难迁移样式
  5. 05迁移后检查视觉回归

适用场景

  1. 01将组件样式迁移到 Tailwind
  2. 02把媒体查询改写为断点工具类
  3. 03识别应保留在全局 CSS 的规则

安装

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

$npx skills add https://github.com/spencerpauly/awesome-cursor-skills --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