converting-css-to-tailwind — скилл для Claude Code: перенос CSS
Скилл проходит по CSS-файлу и переносит правила в Tailwind-классы прямо в разметке. Полезен при переезде проекта со старого CSS на утилиты.
npx skills add spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind -a claude-codeЧто делает converting-css-to-tailwind
Скилл работает по шагам: сначала читает CSS-файл и составляет список правил, потом находит разметку, которая ссылается на каждый селектор, переводит свойства в утилиты, удаляет отработанные правила и в конце проверяет, что страница выглядит так же. Разметку он ищет в HTML, JSX, TSX, Vue и Svelte.
Внутри лежит таблица соответствий: display: flex → flex, gap: 16px → gap-4, padding: 16px → p-4, font-size: 14px → text-sm, border-radius: 8px → rounded-lg. Медиазапросы превращаются в префиксы sm:, md:, lg:, xl:, 2xl:, состояния — в hover:, focus:, active:, disabled:, first:, last:, odd:, even:, group-hover:, peer-checked:. Для переходов и анимаций тоже есть готовые классы вроде transition-all duration-200 ease-in-out и animate-spin.
Часть CSS перенести не выйдет. Сложные селекторы вида .parent > .child + .sibling придётся перестраивать в разметке, @font-face остаётся в глобальном файле, а кастомные @keyframes и CSS-переменные уезжают в tailwind.config.ts. Если в проекте есть тема, скилл советует брать семантические классы (bg-primary) вместо произвольных hex-значений. И @apply он использовать не велит: воссоздавать через него тот же CSS — значит вернуться к тому, от чего уходили.
Какие задачи решает
- перевести старую таблицу стилей на Tailwind-утилиты
- найти разметку, которая ссылается на каждый CSS-селектор
- переписать медиазапросы в брейкпоинты
md:иlg: - заменить ховеры и прочие состояния на префиксы
hover:иfocus: - вынести кастомные
@keyframesи переменные вtailwind.config.ts
Примеры запросов агенту
- возьми
styles/card.cssи перенеси все правила в Tailwind-классы в разметке - переведи медиазапросы из
layout.cssв брейкпоинты Tailwind - проверь, что после переноса CSS страница выглядит так же, и покажи, где остались сложные селекторы
Как установить converting-css-to-tailwind
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind -a claude-code2Вручную: положить файлы
~/.claude/skills/converting-css-to-tailwind/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/converting-css-to-tailwind/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind -a codex2Вручную: положить файлы
.agents/skills/converting-css-to-tailwind/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind -a cursor2Вручную: положить файлы
.cursor/skills/converting-css-to-tailwind/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills converting-css-to-tailwind2Вручную: положить файлы
.github/skills/converting-css-to-tailwind/SKILL.md1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind -a gemini-cli2Командой платформы
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/converting-css-to-tailwindВручную: положить файлы
.devin/skills/converting-css-to-tailwind/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о converting-css-to-tailwind
Как установить converting-css-to-tailwind в Claude?
Выполните npx skills add spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind -a claude-code. Скилл окажется в ~/.claude/skills/converting-css-to-tailwind/SKILL.md.
Что делает converting-css-to-tailwind?
Читает CSS-файл, находит связанную разметку и переводит правила в Tailwind-утилиты, после чего удаляет отработанные правила и сам файл. В конце сверяет страницу на визуальные расхождения.
Что не получится перенести в утилиты?
Сложные селекторы вроде .parent > .child + .sibling, @font-face, кастомные @keyframes и CSS-переменные. Их скилл предлагает перестроить в разметке или унести в tailwind.config.ts.
Исходный текст
SKILL.md · CC0-1.0
---
name: converting-css-to-tailwind
description: Convert plain CSS stylesheets to Tailwind CSS utility classes. Handles selectors, media queries, pseudo-classes, custom properties, and animations.
user-invocable: true
---
# Converting CSS to Tailwind
Migrate plain CSS files to Tailwind utility classes applied directly in markup.
## Workflow
1. **Read the CSS file** and inventory every rule
2. **Find the corresponding markup** (HTML, JSX, TSX, Vue, Svelte) that references each selector
3. **Convert each rule** using the mapping below
4. **Delete the CSS rule** once all its properties are expressed as utilities
5. **Remove the CSS file** (or import) once it's empty
6. **Verify** the page looks identical — check for visual regressions
## Conversion Reference
### Layout & Box Model
| CSS | Tailwind |
|-----|----------|
| `display: flex` | `flex` |
| `display: grid` | `grid` |
| `display: none` | `hidden` |
| `position: relative` | `relative` |
| `position: absolute` | `absolute` |
| `justify-content: center` | `justify-center` |
| `align-items: center` | `items-center` |
| `gap: 16px` | `gap-4` |
| `width: 100%` | `w-full` |
| `max-width: 768px` | `max-w-3xl` |
| `margin: 0 auto` | `mx-auto` |
| `padding: 16px` | `p-4` |
| `overflow: hidden` | `overflow-hidden` |
### Typography
| CSS | Tailwind |
|-----|----------|
| `font-size: 14px` | `text-sm` |
| `font-weight: 700` | `font-bold` |
| `line-height: 1.5` | `leading-normal` |
| `text-align: center` | `text-center` |
| `text-transform: uppercase` | `uppercase` |
| `color: #333` | `text-[#333]` or a theme color |
| `letter-spacing: 0.05em` | `tracking-wide` |
### Backgrounds & Borders
| CSS | Tailwind |
|-----|----------|
| `background-color: #f5f5f5` | `bg-[#f5f5f5]` or `bg-neutral-100` |
| `border: 1px solid #e5e7eb` | `border border-gray-200` |
| `border-radius: 8px` | `rounded-lg` |
| `box-shadow: 0 1px 3px ...` | `shadow-sm` |
### Responsive — Media Queries
```css
@media (min-width: 768px) { .card { flex-direction: row; } }
```
→ `<div class="flex-col md:flex-row">`
Map breakpoints: `sm:` (640), `md:` (768), `lg:` (1024), `xl:` (1280), `2xl:` (1536)
### Pseudo-classes & States
```css
.btn:hover { background-color: #1d4ed8; }
```
→ `<button class="hover:bg-blue-700">`
Prefixes: `hover:`, `focus:`, `active:`, `disabled:`, `first:`, `last:`, `odd:`, `even:`, `group-hover:`, `peer-checked:`
### Animations & Transitions
```css
transition: all 0.2s ease-in-out;
```
→ `transition-all duration-200 ease-in-out`
```css
@keyframes spin { ... }
animation: spin 1s linear infinite;
```
→ `animate-spin` (built-in) or define in `tailwind.config`
### Custom Properties / Arbitrary Values
For anything without a direct utility, use arbitrary values:
- `w-[calc(100%-2rem)]`
- `grid-cols-[200px_1fr_1fr]`
- `text-[clamp(1rem,2vw,1.5rem)]`
## Handling Remaining CSS
Some things can't be expressed purely as utilities:
- **Complex selectors** (`.parent > .child + .sibling`) — restructure the markup or use `@apply` as a last resort
- **`@font-face`** — keep in a global CSS file or `globals.css`
- **Complex `@keyframes`** — define in `tailwind.config.ts` under `theme.extend.keyframes`
- **CSS variables** — migrate to Tailwind theme values in `tailwind.config.ts`
## Rules
- Prefer semantic Tailwind classes (`bg-primary`) over arbitrary hex values when a theme exists
- Don't use `@apply` to recreate the same CSS you're migrating away from — that defeats the purpose
- Group related utilities logically: layout → spacing → typography → colors → effects
- If a component has 10+ utilities, consider extracting a reusable component rather than a CSS class
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills