К основному содержанию
скилл CX Codex

frontend-tailwind-best-practices — скилл для Claude Code: правила

Набор правил Tailwind CSS для фронтенда: стеки, отступы через gap, тёмная тема и слияние классов. Пригодится, когда агент пишет стили компонентов и ломает вёрстку.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add sergiodxa/agent-skills --skill frontend-tailwind-best-practices -a claude-code
Открыть на GitHub

Что делает frontend-tailwind-best-practices

Скилл описывает 10 правил для вёрстки на Tailwind: утилиты раскладки, аффордансы, цветовые схемы, адаптивность и работа с className. Внутри — файлы правил в @rules/, каждый со своими примерами кода: как надо и как не надо.

Главное, что он меняет в поведении агента, — раскладка. Вместо flex flex-col gap-4 он ставит v-stack gap-4, вместо flex flex-row — h-stack, вместо ручного центрирования — center. Есть z-stack, spacer и circle. Отступы между детьми задаются через gap-* на родителе, а не через mb-4 на каждом элементе. Направление стека переключается на брейкпоинтах: v-stack lg:h-stack.

Для className скилл требует утилиту cn() из ~/lib/cn и внешний класс всегда последним аргументом. Типы пропсов берутся оттуда же — ClassName и ClassNameRecord. Цветовая схема строится на классах с вариантом dark, а не на системной теме. Учтите: утилиты вроде v-stack и center — не часть Tailwind, их надо объявить в tailwind.config.js и app/styles/tailwind.css, иначе классы просто ничего не сделают.

Какие задачи решает

  • собрать раскладку из вертикальных и горизонтальных стеков без ручного flex
  • задать отступы через gap на родителе вместо margin у детей
  • переключить направление стека на брейкпоинте
  • сделать тёмную тему на классах, а не на системных настройках
  • слить внешний className с базовыми классами компонента без конфликтов

Примеры запросов агенту

  • сверстай карточку товара на Tailwind по правилам скилла
  • перепиши этот компонент: убери flex flex-col и поставь v-stack
  • добавь тёмную тему кнопке через dark-вариант и cn()

Как установить frontend-tailwind-best-practices

1Через Skills CLI (Vercel)

npx skills add sergiodxa/agent-skills --skill frontend-tailwind-best-practices -a claude-code

2Вручную: положить файлы

~/.claude/skills/frontend-tailwind-best-practices/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/frontend-tailwind-best-practices/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора5

Похожие

tailwind-responsive-ui pproenca Скилл для Claude и других ИИ-редакторов: помогает переделывать интерфейсы на Tailwind CSS под мобильные и десктопные экраны. CX Codex +1 461установок tailwind-css manutej Скилл по Tailwind CSS: утилитарные классы, адаптивность, тёмная тема и оптимизация сборки. Пригодится, когда верстаешь интерфейс и не хочешь прыгать в CSS-файлы. CX Codex +1 461установок tailwind-ui-refactor pproenca Скилл для рефакторинга HTML с классами Tailwind: подсказывает, как выстроить иерархию, отступы, типографику и цвет. Пригодится, когда верстаешь без дизайнера. CX Codex +1 458установок frontend-design julianoczkowski Скилл задаёт правила вёрстки интерфейсов по конкретным эстетическим стилям. Он сканирует проект на готовые токены и компоненты перед генерацией кода. CX Codex +1 5 500установок frontend-enhancer ailabs-393 Скилл для Next.js: готовые компоненты, палитры, анимации и шаблоны секций. Пригодится, когда интерфейс выглядит сыро и нужен план правок. CX Codex +1 968установок designing-frontend-interfaces osmontero Скилл заставляет агента сначала написать дизайн-бриф и зафиксировать токены, а уже потом писать компоненты. Пригодится, когда интерфейс выглядит как типовой вывод ИИ. CX Codex +1 642установок

Рядом в теме «Фронтенд и UI»

Всё по теме «Фронтенд и UI» →

Вопросы о frontend-tailwind-best-practices

Как установить frontend-tailwind-best-practices в Claude?

Выполните npx skills add sergiodxa/agent-skills --skill frontend-tailwind-best-practices -a claude-code. Скилл окажется в ~/.claude/skills/frontend-tailwind-best-practices/SKILL.md.

Что делает этот скилл?

Даёт агенту 10 правил вёрстки на Tailwind: утилиты стеков, отступы через gap, адаптивные брейкпоинты, тёмная тема на классах и слияние className через cn().

Нужны ли дополнительные настройки в проекте?

Да. Утилиты v-stack, h-stack, center и остальные объявляются в tailwind.config.js и app/styles/tailwind.css, а cn() живёт в app/utils/cn.ts.

Исходный текст

SKILL.md · MIT
---
name: frontend-tailwind-best-practices
description: Tailwind CSS patterns and conventions for frontend apps. Use when writing component styles, layouts, or working with CSS classes.
---

# Tailwind CSS Best Practices

Styling patterns and conventions for frontend applications. Contains 10 rules covering layout utilities, affordances, color schemes, responsive design, and className handling.

## When to Apply

Reference these guidelines when:

- Writing component styles with Tailwind
- Creating layouts (stacks, grids, centering)
- Handling responsive design
- Working with color schemes
- Merging className props

## Rules Summary

### Layout Utilities (CRITICAL)

#### layout-stack-utilities - @rules/layout-stack-utilities.md

Use custom stack utilities instead of flex classes.

```tsx
// Bad
<div className="flex flex-col gap-4">
<div className="flex flex-row gap-4">

// Good
<div className="v-stack gap-4">
<div className="h-stack gap-4">
```

Available utilities:

- `v-stack` - Vertical stack (flex column)
- `h-stack` - Horizontal stack (flex row)
- `v-stack-reverse` - Reversed vertical stack
- `h-stack-reverse` - Reversed horizontal stack
- `z-stack` - Overlapping stack (grid-based, centers children on top of each other)
- `center` - Center content both horizontally and vertically
- `spacer` - Flexible spacer that fills available space
- `circle` - Perfect circle with aspect-ratio 1/1

#### layout-prefer-gaps - @rules/layout-prefer-gaps.md

Use `gap-*` on parents instead of child margins.

```tsx
// Bad
<div>
  <Item className="mb-4" />
  <Item className="mb-4" />
</div>

// Good
<div className="flex flex-col gap-4">
  <Item />
  <Item />
</div>
```

#### layout-responsive-stacks - @rules/layout-responsive-stacks.md

Switch layout direction at breakpoints.

```tsx
// Mobile: vertical, Desktop: horizontal
<div className="v-stack lg:h-stack gap-4">
  <main className="grow">...</main>
  <aside className="shrink-0 lg:w-80">...</aside>
</div>

// Mobile: horizontal, Desktop: vertical
<div className="h-stack md:v-stack">
```

### Color Schemes (CRITICAL)

#### color-schemes - @rules/color-schemes.md

Use class-based color schemes with a custom `dark` variant.

```tsx
<button className="rounded-full bg-gray-900 px-4 py-2 text-white dark:bg-gray-100 dark:text-gray-900">
  Toggle
</button>
```

### className Handling (CRITICAL)

#### classname-cn-utility - @rules/classname-cn-utility.md

Always use `cn()` to merge classNames in components.

```tsx
import { cn } from "~/lib/cn";

function Button({ className, variant }: Props) {
  return (
    <button
      className={cn(
        "base-classes",
        {
          "variant-primary": variant === "primary",
          "variant-secondary": variant === "secondary",
        },
        className, // external className always last
      )}
    />
  );
}
```

#### classname-prop-types - @rules/classname-prop-types.md

Use proper types for className props.

```tsx
import type { ClassName, ClassNameRecord } from "~/lib/cn";

// Single element
type Props = {
  className?: ClassName;
};

// Multiple elements
type Props = {
  className?: ClassNameRecord<"root" | "label" | "input">;
};

// Usage
<Input className={{ root: "w-full", label: "font-bold" }} />;
```

### Affordances (HIGH)

#### affordance-classes - @rules/affordance-classes.md

Define element-agnostic visual patterns that compose with utilities.

```tsx
<label className="ui-button" htmlFor="document-upload">
  Choose file
</label>
```

### Responsive Design (MEDIUM)

#### responsive-breakpoints - @rules/responsive-breakpoints.md

Use responsive prefixes with Tailwind defaults.

```tsx
// Standard breakpoints (min-width)
<div className="px-4 md:px-8 lg:px-12">

// Show/hide with standard breakpoints
<div className="hidden md:block">Desktop only</div>
<div className="md:hidden">Mobile only</div>
```

#### responsive-text - @rules/responsive-text.md

Scale text responsively.

```tsx
// Responsive font size
<h1 className="text-2xl md:text-3xl lg:text-4xl">

// Responsive line height with text
<p className="text-sm leading-5 md:text-base md:leading-6">
```

#### responsive-capabilities - @rules/responsive-capabilities.md

Design for input capabilities (pointer/hover) instead of device labels.

```tsx
<button className="h-10 w-10 pointer-coarse:h-12 pointer-coarse:w-12">
  <Icon />
</button>
```

## Anti-Patterns

| Don't                              | Do                     |
| ---------------------------------- | ---------------------- |
| `flex flex-col`                    | `v-stack`              |
| `flex flex-row`                    | `h-stack`              |
| `flex items-center justify-center` | `center`               |
| `bg-gray-100`                      | `bg-neutral-100`       |
| `bg-[#hex]`                        | Use design tokens      |
| `className="..."` without `cn()`   | `cn("...", className)` |
| Inline `style` for responsive      | Tailwind prefixes      |

## Key Files

| File                      | Purpose                          |
| ------------------------- | -------------------------------- |
| `tailwind.config.js`      | Config, custom utilities, colors |
| `app/styles/global.css`   | Color scheme CSS variables       |
| `app/styles/tailwind.css` | Additional utilities             |
| `app/utils/cn.ts`         | className merge utility          |

© sergiodxa · MIT · sergiodxa/agent-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой