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

tailwind-v4 — скилл для Claude Code: Tailwind CSS v4 без конфигов

Скилл для ИИ-агента, который подсказывает, как настроить Tailwind CSS v4: тема в CSS, токены дизайна, цвета OKLCH и тёмная тема.

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

Что делает tailwind-v4

Скилл описывает CSS-first подход Tailwind v4. Конфиг tailwind.config.js больше не нужен: тема живёт в директиве @theme прямо в CSS, а сборку берёт на себя плагин @tailwindcss/vite. Внутри — шпаргалка по подключению, таблица отличий от v3 и разбор трёх режимов @theme: обычного, inline и reference.

Отдельный блок про цвета. Формат oklch(L% C H) разобран по составляющим, есть примеры готовых значений и правила именования переменных вида --color-{name}-{shade}, --spacing, --font-{family}, --breakpoint-{size}. Для тёмной темы скилл отправляет в references/dark-mode.md, где лежат варианты через media-запросы, класс и атрибут.

Перед тем как советовать токены, скилл проверяет три вещи: в vite.config.ts подключён tailwindcss() из @tailwindcss/vite, точка входа содержит @import 'tailwindcss', а в package.json стоит major 4. Если проект всё ещё на v3 с PostCSS и extend, сначала придётся переехать — иначе советы по @theme просто не сработают.

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

  • перевести проект с tailwind.config.js на @theme в CSS
  • задать палитру в OKLCH и не запутаться в светлоте и хроме
  • выбрать между @theme, @theme inline и @theme reference
  • подключить @tailwindcss/vite вместо PostCSS-плагина
  • настроить тёмную тему через варианты CSS

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

  • помоги настроить Tailwind v4 в этом проекте
  • задай тему через @theme с цветами в oklch
  • как сделать тёмную тему в Tailwind v4 без tailwind.config.js

Как установить tailwind-v4

1Через Skills CLI (Vercel)

npx skills add existential-birds/beagle --skill tailwind-v4 -a claude-code

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

~/.claude/skills/tailwind-v4/SKILL.md

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

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

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

react-flow Помогает ассистенту создавать интерактивные диаграммы и графы на базе @xyflow/react. Пригодится при настройке узлов, связей и управлении зумом. CX Codex +1 1 300установок python-code-review Скилл проверяет файлы Python на ошибки в типах, блокирующие вызовы в async-функциях и нарушение PEP8. Пригодится при подготовке пуллреквестов и чистке кодовой базы. CX Codex +1 920установок langgraph-code-review Скилл проверяет код на базе LangGraph в Claude Code и других агентах. Он находит мутации состояния, пропущенные редьюсеры и ошибки в узлах графа. CX Codex +1 884установок react-router-v7 Скилл с практиками React Router v7: подсказывает, когда брать loader, Form или fetcher, и как настраивать вложенные маршруты. CX Codex +1 572установок vitest-testing Скилл для ИИ-агента: подсказывает, как писать тесты на Vitest — ассерты, моки, асинхронность, конфиг. Пригодится, когда в проекте уже стоит Vitest. CX Codex +1 467установок shadcn-ui Подсказывает агенту, как собирать компоненты на shadcn/ui: Radix, Tailwind, CVA-варианты и data-slot. CX Codex +1 351установок react-flow-code-review Проверяет код на @xyflow/react по чек-листу: антипаттерны, лишние ре-рендеры, типы. Пригодится, когда граф тормозит или ноды пересоздаются. CX Codex +1 319установок

Похожие

tailwind-theme-builder jezweb Скилл настраивает тему Tailwind v4 с shadcn/ui и тёмным режимом: ставит зависимости, связывает CSS-переменные через @theme inline, подключает переключатель темы. CX Codex +1 3 200установок better-colors jakubkrehel Скилл проверяет палитры и строит систему цветовых токенов. Он нужен, когда в коде накопились случайные hex-значения, а контраст текста никто не считал. CX Codex +1 32 600установок tailwind-css manutej Скилл по Tailwind CSS: утилитарные классы, адаптивность, тёмная тема и оптимизация сборки. Пригодится, когда верстаешь интерфейс и не хочешь прыгать в CSS-файлы. CX Codex +1 461установок tokens educlopez Проверяет, как в проекте устроены дизайн-токены, и помогает собрать трёхслойную систему с нуля. Пригодится, когда цвета и отступы расползлись по файлам. CX Codex +1 853установок tailwindcss-advanced-design-systems JosiahSiegel Скилл для сборки дизайн-системы на Tailwind v4: токены в @theme, цветовые шкалы, типографика, тени и тёмная тема. CX Codex +1 655установок tailwind-v4-shadcn secondsky Скилл настраивает связку Tailwind CSS v4, shadcn/ui и React в проектах на Vite. Помогает избежать ошибок импорта и поломки CSS-переменных при переключении тем оформления. CX Codex +1 8 100установок

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

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

Вопросы о tailwind-v4

Как установить tailwind-v4 в Claude?

Выполните npx skills add existential-birds/beagle --skill tailwind-v4 -a claude-code. После этого файл скилла появится по пути ~/.claude/skills/tailwind-v4/SKILL.md.

Что делает tailwind-v4?

Подсказывает агенту, как настраивать Tailwind CSS v4: директиву @theme, токены дизайна, цвета в OKLCH и тёмную тему. Срабатывает на @theme, @tailwindcss/vite, oklch и переменные --color-.

Что нужно, чтобы скилл сработал?

Проект должен быть на Tailwind v4: плагин @tailwindcss/vite в конфиге Vite и @import 'tailwindcss' в точке входа CSS. Если тема всё ещё задаётся через extend в tailwind.config.js, сначала нужен переезд на v4.

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

SKILL.md · Apache-2.0
---
name: tailwind-v4
description: Tailwind CSS v4 with CSS-first configuration and design tokens. Use when setting up Tailwind v4, defining theme variables, using OKLCH colors, or configuring dark mode. Triggers on @theme, @tailwindcss/vite, oklch, CSS variables, --color-, tailwind v4.
---

# Tailwind CSS v4 Best Practices

## Quick Reference

**Vite Plugin Setup**:
```ts
// vite.config.ts
import tailwindcss from '@tailwindcss/vite';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [tailwindcss()],
});
```

**CSS Entry Point**:
```css
/* src/index.css */
@import 'tailwindcss';
```

**@theme Inline Directive**:
```css
@theme inline {
  --color-primary: oklch(60% 0.24 262);
  --color-surface: oklch(98% 0.002 247);
}
```

## Key Differences from v3

| Feature | v3 | v4 |
|---------|----|----|
| Configuration | tailwind.config.js | @theme in CSS |
| Build Tool | PostCSS plugin | @tailwindcss/vite |
| Colors | rgb() / hsl() | oklch() (default) |
| Theme Extension | extend: {} in JS | CSS variables |
| Dark Mode | darkMode config option | CSS variants |

## @theme Directive Modes

### default (standard mode)
Generates CSS variables that can be referenced elsewhere:
```css
@theme {
  --color-brand: oklch(60% 0.24 262);
}

/* Generates: :root { --color-brand: oklch(...); } */
/* Usage: text-brand → color: var(--color-brand) */
```

**Note**: You can also use `@theme default` explicitly to mark theme values that can be overridden by non-default @theme declarations.

### inline
Inlines values directly without CSS variables (better performance):
```css
@theme inline {
  --color-brand: oklch(60% 0.24 262);
}

/* Usage: text-brand → color: oklch(60% 0.24 262) */
```

### reference
Inlines values as fallbacks without emitting CSS variables:
```css
@theme reference {
  --color-internal: oklch(50% 0.1 180);
}

/* No :root variable, but utilities use fallback */
/* Usage: bg-internal → background-color: var(--color-internal, oklch(50% 0.1 180)) */
```

## OKLCH Color Format

OKLCH provides perceptually uniform colors with better consistency across hues:

```css
oklch(L% C H)
```

- **L (Lightness)**: 0% (black) to 100% (white)
- **C (Chroma)**: 0 (gray) to ~0.4 (vibrant)
- **H (Hue)**: 0-360 degrees (red → yellow → green → blue → magenta)

**Examples**:
```css
--color-sky-500: oklch(68.5% 0.169 237.323);  /* Bright blue */
--color-red-600: oklch(57.7% 0.245 27.325);   /* Vibrant red */
--color-zinc-900: oklch(21% 0.006 285.885);   /* Near-black gray */
```

## CSS Variable Naming

Tailwind v4 uses double-dash CSS variable naming conventions:

```css
@theme {
  /* Colors: --color-{name}-{shade} */
  --color-primary-500: oklch(60% 0.24 262);

  /* Spacing: --spacing multiplier */
  --spacing: 0.25rem;  /* Base unit for spacing scale */

  /* Fonts: --font-{family} */
  --font-display: 'Inter Variable', system-ui, sans-serif;

  /* Breakpoints: --breakpoint-{size} */
  --breakpoint-lg: 64rem;

  /* Custom animations: --animate-{name} */
  --animate-fade-in: fade-in 0.3s ease-out;
}
```

## No Config Files Needed

Tailwind v4 eliminates configuration files:

- **No `tailwind.config.js`** - Use @theme in CSS instead
- **No `postcss.config.js`** - Use @tailwindcss/vite plugin
- **TypeScript support** - Add `@types/node` for path resolution

```json
{
  "devDependencies": {
    "@tailwindcss/vite": "^4.0.0",
    "@types/node": "^22.0.0",
    "tailwindcss": "^4.0.0",
    "vite": "^6.0.0"
  }
}
```

## Progressive Disclosure

- **Setup & Installation**: See [references/setup.md](references/setup.md) for Vite plugin configuration, package setup, TypeScript config
- **Theming & Design Tokens**: See [references/theming.md](references/theming.md) for @theme modes, color palettes, custom fonts, animations
- **Dark Mode Strategies**: See [references/dark-mode.md](references/dark-mode.md) for media queries, class-based, attribute-based approaches

## Gates (setup verification)

Before recommending `@theme` choices, OKLCH tokens, or v4 utilities, confirm the project is actually on the v4 integration path:

1. **Build wiring:** The Vite config loads `tailwindcss()` from `@tailwindcss/vite`, and the CSS entry uses `@import 'tailwindcss'`. If this fails, stop — fix wiring per [references/setup.md](references/setup.md) first.
2. **Major versions:** `package.json` lists `tailwindcss` (and `@tailwindcss/vite` when using Vite) at **major 4**, not a v3 PostCSS-only toolchain.
3. **Theme source:** New theme tokens live in `@theme` / `@theme inline` in CSS — not `tailwind.config.js` `extend` (v3). If a v3 config still drives the theme, migrating wiring takes precedence over token tweaks.

## Decision Guide

### When to use @theme inline vs default

**Use `@theme inline`**:
- Better performance (no CSS variable overhead)
- Static color values that won't change
- Animation keyframes with multiple values
- Utilities that need direct value inlining

**Use `@theme` (default)**:
- Dynamic theming with JavaScript
- CSS variable references in custom CSS
- Values that change based on context
- Better debugging (inspect CSS variables in DevTools)

### When to use @theme reference

**Use `@theme reference`**:
- Provide fallback values without CSS variable overhead
- Values that should work even if variable isn't defined
- Reducing :root bloat while maintaining utility support
- Combining with inline for direct value substitution

## Common Patterns

### Two-Tier Variable System

Semantic variables that map to design tokens:

```css
@theme {
  /* Design tokens (OKLCH colors) */
  --color-blue-600: oklch(54.6% 0.245 262.881);
  --color-slate-800: oklch(27.9% 0.041 260.031);

  /* Semantic mappings */
  --color-primary: var(--color-blue-600);
  --color-surface: var(--color-slate-800);
}

/* Usage: bg-primary, bg-surface */
```

### Custom Font Configuration

```css
@theme {
  --font-display: 'Inter Variable', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  --font-display--font-variation-settings: 'wght' 400;
  --font-display--font-feature-settings: 'cv02', 'cv03', 'cv04';
}

/* Usage: font-display, font-mono */
```

### Animation Keyframes

```css
@theme inline {
  --animate-beacon: beacon 2s ease-in-out infinite;

  @keyframes beacon {
    0%, 100% {
      opacity: 1;
      transform: scale(1);
    }
    50% {
      opacity: 0.5;
      transform: scale(1.05);
    }
  }
}

/* Usage: animate-beacon */
```

© existential-birds · Apache-2.0 · existential-birds/beagle

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

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

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