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

storybook — скилл для Claude Code: что делает и как установить

Задаёт правила создания историй, автодокументации и тестов компонентов в Storybook. Помогает поддерживать дизайн-систему в проектах на React.

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

Что делает storybook

Скилл передаёт агенту стандарты оформления библиотек компонентов. Он фиксирует правила оформления историй. В правилах прописаны структура файлов ComponentName.stories.tsx, типизация через Meta и StoryObj из пакета @storybook/react, а также обязательные состояния фокуса и ошибок.

В руководстве разобрана настройка argTypes, параметров отображения и тем через декораторы. Скилл содержит паттерны проверки доступности с аддоном @storybook/addon-a11y и сценарии взаимодействия через функцию play.

Шаблоны ориентированы на React и TypeScript. Для интерактивных тестов в проекте нужны пакеты @storybook/testing-library и @storybook/jest.

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

  • составить файл историй по шаблону ComponentName.stories.tsx
  • настроить контролы и типы аргументов через argTypes
  • добавить проверку доступности с помощью addon-a11y
  • написать тесты взаимодействия через функцию play

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

  • Создай файл историй для компонента Button с вариантами primary и secondary
  • Настрой argTypes и контролы для пропсов размера и состояния disabled в Card.stories.tsx
  • Напиши тест клика кнопки в секции play с проверкой фокуса

Как установить storybook

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill storybook -a claude-code

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

~/.claude/skills/storybook/SKILL.md

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

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

Вопросы о storybook

Как установить storybook в Claude Code?

Выполните команду npx skills add Mindrally/skills --skill storybook -a claude-code в терминале. Также можно сохранить файл по пути ~/.claude/skills/storybook/SKILL.md.

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

Он инструктирует ИИ-агента создавать истории Storybook по единым стандартам: размещать их рядом с компонентами, использовать autodocs, описывать пропсы и настраивать тестирование.

Какие зависимости нужны для тестов взаимодействия по этому скиллу?

Для воспроизведения пользовательских событий и проверок в функции play понадобятся пакеты @storybook/testing-library и @storybook/jest.

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

SKILL.md · Apache-2.0
---
name: storybook
description: Best practices for building and documenting component libraries with Storybook
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Storybook Best Practices

You are an expert in building and documenting component libraries with Storybook. Apply these guidelines when creating stories, organizing components, and maintaining design systems.

## Project Structure

### Directory Organization

- Place stories alongside component files (Component.stories.tsx)
- Use consistent naming conventions for story files
- Organize stories by feature or component type
- Maintain a clear hierarchy matching your component library

### File Naming

- Use PascalCase for component story files
- Follow pattern: `ComponentName.stories.tsx`
- Group related stories in the same file
- Use descriptive story names that explain the variant

## Writing Stories

### Story Structure

```typescript
import type { Meta, StoryObj } from '@storybook/react';
import { Component } from './Component';

const meta: Meta<typeof Component> = {
  title: 'Category/Component',
  component: Component,
  parameters: {
    layout: 'centered',
  },
  tags: ['autodocs'],
  argTypes: {
    // Define arg types here
  },
};

export default meta;
type Story = StoryObj<typeof meta>;

export const Default: Story = {
  args: {
    // Default props
  },
};

export const Variant: Story = {
  args: {
    variant: 'secondary',
  },
};
```

### Story Best Practices

- Create a Default story showing primary usage
- Add stories for each significant variant
- Include edge cases and error states
- Document interactive states (hover, focus, disabled)
- Show responsive behavior when relevant

## Component Documentation

### Autodocs

- Enable autodocs for automatic documentation generation
- Write clear JSDoc comments for components and props
- Document prop types, defaults, and requirements
- Include usage examples in component comments

### Custom Documentation

- Add MDX files for complex documentation needs
- Include design rationale and usage guidelines
- Document accessibility considerations
- Provide code examples for common use cases

## Args and Controls

### ArgTypes Configuration

```typescript
argTypes: {
  variant: {
    control: 'select',
    options: ['primary', 'secondary', 'tertiary'],
    description: 'Visual style variant',
    table: {
      defaultValue: { summary: 'primary' },
    },
  },
  size: {
    control: 'radio',
    options: ['sm', 'md', 'lg'],
  },
  disabled: {
    control: 'boolean',
  },
  onClick: {
    action: 'clicked',
  },
}
```

### Args Best Practices

- Use meaningful default values
- Group related args logically
- Provide descriptions for complex props
- Set up actions for callback props

## Decorators and Parameters

### Decorators

```typescript
decorators: [
  (Story) => (
    <ThemeProvider theme={defaultTheme}>
      <Story />
    </ThemeProvider>
  ),
],
```

- Use decorators for consistent story wrappers
- Apply theme providers at the appropriate level
- Add layout containers when needed
- Keep decorators simple and reusable

### Parameters

```typescript
parameters: {
  layout: 'centered', // or 'fullscreen', 'padded'
  backgrounds: {
    default: 'light',
    values: [
      { name: 'light', value: '#ffffff' },
      { name: 'dark', value: '#1a1a1a' },
    ],
  },
  viewport: {
    defaultViewport: 'responsive',
  },
},
```

## Testing with Storybook

### Interaction Testing

```typescript
import { within, userEvent } from '@storybook/testing-library';
import { expect } from '@storybook/jest';

export const Clickable: Story = {
  play: async ({ canvasElement }) => {
    const canvas = within(canvasElement);
    const button = canvas.getByRole('button');

    await userEvent.click(button);
    await expect(button).toHaveFocus();
  },
};
```

### Visual Testing

- Configure visual regression testing
- Capture stories at multiple viewports
- Test theme variations (light/dark mode)
- Document visual test coverage

### Accessibility Testing

- Enable a11y addon for accessibility checks
- Address all accessibility violations
- Test keyboard navigation in stories
- Document ARIA requirements

## Addons and Configuration

### Essential Addons

- @storybook/addon-essentials (docs, controls, actions, viewport)
- @storybook/addon-a11y for accessibility testing
- @storybook/addon-interactions for interaction testing
- @storybook/addon-designs for design spec integration

### Configuration

```typescript
// .storybook/main.ts
const config: StorybookConfig = {
  stories: ['../src/**/*.stories.@(js|jsx|ts|tsx)'],
  addons: [
    '@storybook/addon-essentials',
    '@storybook/addon-a11y',
    '@storybook/addon-interactions',
  ],
  framework: {
    name: '@storybook/react-vite',
    options: {},
  },
};

export default config;
```

## Design System Integration

### Design Tokens

- Import design tokens from your token system
- Apply tokens consistently in stories
- Document token usage in component docs
- Show token variations in dedicated stories

### Theme Support

- Configure theme provider in preview.js
- Create stories for each theme variant
- Test components across all supported themes
- Document theme-specific behavior

## Performance

### Build Optimization

- Use lazy loading for large story collections
- Optimize static assets
- Configure proper caching
- Monitor and improve build times

### Story Performance

- Avoid heavy computations in stories
- Use mock data efficiently
- Lazy load complex dependencies
- Profile and optimize slow stories

## Best Practices Summary

- Write stories that serve as living documentation
- Test components in isolation before integration
- Keep stories simple and focused
- Maintain consistency across all stories
- Update stories when components change
- Use stories for design review and QA
- Make accessibility testing part of the workflow
- Integrate with your CI/CD pipeline

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →
frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок hyperframes heygen-com Скилл задаёт агенту правила рендера HTML-кода в видео через HyperFrames. Помогает собирать проморолики, эксплейнеры и титры прямо в коде проекта. CX Codex +1 1 200 000установок hyperframes-cli heygen-com Управляет проектами HyperFrames через терминал: собирает таймлайн, проверяет контраст кадров, запускает предпросмотр и рендерит видео локально или в облаке. CX Codex +1 1 300 000установок webapp-testing официальный anthropics Скилл запускает проверки локальных веб-приложений через Playwright: помогает отлаживать UI, делать скриншоты и смотреть логи браузера. 186 758установок

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

security-best-practices Скилл задаёт правила безопасной разработки бэкенда и микросервисов. Помогает выстроить проверку пользовательского ввода, защиту API и аутентификацию без утечек секретов или стектрейсов. CX Codex +1 930установок flutter Задаёт правила разработки на Flutter и Dart: чистую архитектуру по фичам, управление состоянием через Riverpod или BLoC и ограничения на вложенность виджетов. CX Codex +1 925установок drupal-development Скилл помогает агенту писать и разбирать код модулей для Drupal 10 с учётом стандартов Drupal и PHP. Пригодится для сервисов, форм, маршрутов и обновлений схемы. CX Codex +1 911установок supabase Задаёт правила бэкенд-разработки на Supabase: схемы PostgreSQL, политики RLS, Edge Functions и авторизацию в веб-приложениях. CX Codex +1 910установок laravel-development Скилл задаёт агенту рамки Laravel-разработки: SOLID, PSR-12, Eloquent вместо сырого SQL. Пригодится, когда ИИ пишет код в Laravel-проекте. CX Codex +1 909установок unity Скилл задаёт агенту правила игры в Unity: компонентная архитектура, ScriptableObjects, пулы объектов и работа с профайлером. CX Codex +1 908установок design-systems Помогает агенту выстроить дизайн-токены, компонентную библиотеку и правила доступности в одном проекте. CX Codex +1 903установок shopify-theme-development-guidelines Скилл помогает создавать и менять темы Shopify с учётом Liquid, Online Store 2.0 и правил для HTML, CSS и JavaScript. Пригодится для работы со структурой темы и её производительностью. CX Codex +1 898установок

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

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