Storybook mit Claude Code: Component-Driven Development 2026
Storybook 8: Stories schreiben, Controls, Interactions, MSW-Mocking, Visual Testing mit Chromatic,
Design System Dokumentation — Claude Code als Component-Experte.
📅 6. Mai 2026⏱ 10 min Lesezeit✍️ SpockyMagicAI Team
Component-Driven Development (CDD) hat sich als Standard für moderne Frontend-Entwicklung
etabliert. Mit Storybook 8 und Claude Code als intelligentem Copiloten lassen sich
komplexe UI-Komponenten isoliert entwickeln, testen und dokumentieren — ohne die gesamte Applikation
hochzufahren. In diesem Artikel zeigen wir den kompletten Workflow von der Initialisierung bis zum
visuellen Regressions-Testing mit Chromatic.
📖
Stories & CSF3
Component Story Format 3 mit vollem TypeScript-Support und Play-Funktionen.
🎛️
Controls & Actions
Interaktive Props-Manipulation ohne Code. Autodoc aus TypeScript-Typen generieren.
🧪
Interaction Testing
userEvent + expect direkt in der Story — Tests als lebendige Dokumentation.
🌐
MSW Mocking
API-Responses in Stories simulieren — kein Backend nötig für Component-Tests.
👁️
Chromatic
Visual Regression Testing in CI/CD — Pixel-genaue Diffs bei jedem PR.
🤖
Claude Code
KI-generierte Stories, automatische Docs-Erstellung und Refactoring-Support.
1. Storybook 8 Setup und Konfiguration
Storybook 8 bringt gegenüber Version 7 deutliche Performance-Verbesserungen durch den neuen
Vite-basierten Builder und ein überarbeitetes Addon-System. Claude Code hilft,
die initiale Konfiguration korrekt auf das jeweilige Projekt-Setup abzustimmen.
Setup
Voraussetzungen
Node.js ≥ 18, ein bestehendes React/Vue/Angular/Svelte-Projekt, TypeScript ≥ 5.0 empfohlen.
Storybook 8 unterstützt Vite 5, Webpack 5 und Next.js 14+ out-of-the-box.
Installation mit npx
Der schnellste Einstieg: npx storybook@latest init erkennt das Framework automatisch
und richtet alles ein — Builder, Addons, Beispiel-Stories.
Terminal
# Storybook 8 in bestehendes Projekt initialisieren
npx storybook@latest init
# Storybook starten (Dev-Server auf Port 6006)
npm run storybook
# Storybook als statische Site bauen
npm run build-storybook
Nach der Initialisierung erstellt Storybook automatisch den .storybook/-Ordner mit
main.ts und preview.ts. Claude Code kann beide Dateien gezielt anpassen,
wenn man die gewünschte Konfiguration beschreibt.
Konfiguration: .storybook/main.ts
Die main.ts steuert Builder, Addons und Story-Pfade. Mit Claude Code lässt sich die
Konfiguration per natürlichsprachlicher Beschreibung erweitern — z.B. "Aktiviere MSW-Addon und
konfiguriere absolute Imports aus src/".
preview.ts definiert globale Decorator, Parameter und Toolbar-Optionen. Hier werden
auch globale CSS-Imports und Context-Provider (Theme, Router) für alle Stories registriert.
"Erweitere meine .storybook/preview.ts um einen ThemeProvider-Decorator der zwischen Light und Dark Mode
umschaltet, mit einem Storybook-Toolbar-Toggle. Nutze @mui/material ThemeProvider." — Claude Code generiert
den kompletten Decorator inkl. Theme-Definition in unter 10 Sekunden.
2. Stories schreiben mit CSF3 und TypeScript
Das Component Story Format 3 (CSF3) ist der aktuelle Standard für Storybook-Stories.
Gegenüber CSF2 sind Play-Funktionen first-class, die Story-Definition ist schlanker und
TypeScript-Integration ist nahtlos. Claude Code beherrscht CSF3 vollständig und kann Stories
direkt aus Komponenten-Code generieren.
Anatomie einer CSF3-Story
src/components/Button/Button.stories.tsx
import type { Meta, StoryObj } from'@storybook/react';
import { fn } from'@storybook/test';
import { Button } from'./Button';
// Meta-Objekt: Konfiguration für alle Stories dieser Komponenteconst meta = {
title: 'UI/Button', // Pfad in der Sidebar
component: Button,
tags: ['autodocs'], // Automatische Docs-Seite generieren
parameters: {
layout: 'centered', // Komponente in der Mitte anzeigen
},
args: {
onClick: fn(), // Spy-Funktion für Action-Logging
},
argTypes: {
variant: {
control: 'select',
options: ['primary', 'secondary', 'ghost', 'danger'],
description: 'Visuelle Variante des Buttons',
},
size: {
control: 'radio',
options: ['sm', 'md', 'lg'],
},
disabled: { control: 'boolean' },
children: { control: 'text' },
},
} satisfies Meta<typeofButton>;
export default meta;
typeStory = StoryObj<typeof meta>;
// Einfachste Story: Nur args überschreibenexport constPrimary: Story = {
args: {
variant: 'primary',
size: 'md',
children: 'Jetzt starten',
},
};
export constSecondary: Story = {
args: {
variant: 'secondary',
children: 'Mehr erfahren',
},
};
export constDisabled: Story = {
args: {
disabled: true,
children: 'Nicht verfügbar',
},
};
// Render-Override: Mehrere Varianten in einer Story zeigenexport constAllVariants: Story = {
render: () => (
<div style={{ display: 'flex', gap: '12px', flexWrap: 'wrap' }}>
{['primary', 'secondary', 'ghost', 'danger'].map((variant) => (
<Button key={variant} variant={variant asany}>
{variant.charAt(0).toUpperCase() + variant.slice(1)}
</Button>
))}
</div>
),
};
Claude Code: Stories automatisch generieren
Claude Code analysiert die Komponenten-Typdefinitionen und generiert vollständige Story-Dateien.
Ein typischer Prompt:
Claude Code Prompt
"Generiere eine vollständige Storybook CSF3 Story-Datei für meine DataTable-Komponente.
Inkludiere Stories für: leere Tabelle, mit 10 Zeilen, mit Pagination, mit Sortierung aktiv,
Loading-State und Error-State. Nutze MSW für API-Mocking."
Claude Code liest die TypeScript-Typen der Komponente, analysiert Props und generiert
typsichere Stories mit sinnvollen Beispieldaten — ohne manuelles Copy-Paste.
✅ Best Practice: Story-Naming-Konvention
Stories immer nach dem beschriebenen Zustand benennen: WithLongText,
InErrorState, WithMobileViewport. Vermeidet generische Namen wie
Story1 oder Test. Claude Code hält diese Konvention automatisch ein
wenn sie im Projekt-CLAUDE.md dokumentiert ist.
3. Controls, Actions und Autodoc
Controls ermöglichen das interaktive Anpassen von Props direkt im Storybook-UI —
ohne Code-Änderungen. Actions protokollieren Event-Handler-Aufrufe. Beides zusammen
macht Storybook zum leistungsstarken interaktiven Playground für Stakeholder und Entwickler.
Controls
Control-Typen im Überblick
text — Freitextfeld | number — Zahlenfeld mit min/max/step |
boolean — Toggle | select — Dropdown | radio — Radio-Buttons |
check — Multi-Select | color — Farbpicker | date — Datepicker |
object — JSON-Editor | file — Dateiauswahl
Autodoc: Automatische Dokumentation aus TypeScript
Mit tags: ['autodocs'] generiert Storybook automatisch eine vollständige
Dokumentationsseite aus den TypeScript-Typen und JSDoc-Kommentaren. Claude Code ergänzt
fehlende JSDoc-Beschreibungen auf Anfrage.
"Analysiere alle Komponenten in src/components/ und erstelle fehlende Story-Dateien. Für jede
Komponente: mindestens 3 Stories, Autodoc-Tag, alle Props als Controls konfiguriert, sinnvolle
Standardwerte." — Claude Code arbeitet den gesamten Ordner systematisch durch.
4. Interaction Testing mit @storybook/test
Seit Storybook 7 ist Interaction Testing vollständig integriert. Play-Funktionen
führen nach dem Rendern automatisch Benutzerinteraktionen aus und überprüfen den resultierenden
Zustand mit expect-Assertions. Claude Code kann komplexe Interaktions-Szenarien
aus User Stories ableiten und als Play-Funktionen implementieren.
Interaction
Play-Funktionen als lebendige Tests
Play-Funktionen laufen sowohl im Storybook-Browser (sichtbar im Interactions-Panel) als auch in
CI via npx storybook test — ohne separate Test-Konfiguration.
# Storybook bauen + Interaction Tests ausführen
npx storybook build --output-dir storybook-static
npx concurrently -k -s first -n "SB,TEST" \
"npx http-server storybook-static --port 6006 --silent" \
"npx wait-on tcp:6006 && npx storybook test --url http://localhost:6006"
# Oder mit dem neuen --test Flag (Storybook 8.4+)
npx storybook test --browsers chromium firefox
⚠️ Häufiger Fehler: waitFor vergessen
Bei asynchronen Aktionen (Klick → State-Update → DOM-Änderung) IMMER waitFor()
oder await expect(...).resolves nutzen. Ohne waitFor schlagen Tests sporadisch
fehl wegen Race Conditions. Claude Code fügt waitFor automatisch ein wenn es das Muster erkennt.
5. MSW API-Mocking in Storybook
Mock Service Worker (MSW) ist die modernste Lösung für API-Mocking im Browser.
Statt HTTP-Requests zu interceptieren oder fetch zu überschreiben, registriert MSW einen echten
Service Worker der Netzwerk-Anfragen abfängt. Das ergibt realistischeres Mocking ohne
Implementation-Details zu kennen.
MSW
Warum MSW statt Mock-Props?
MSW mockt auf Netzwerkebene — die Komponente verhält sich exakt wie in Produktion. Kein
Prop-Drilling von Mock-Daten, kein Überschreiben von fetch/axios. Stories mit MSW testen
den kompletten Datenpfad von der Komponente bis zum "Server".
Installation und Service Worker Setup
Terminal
# MSW und Storybook-Addon installieren
npm install msw msw-storybook-addon --save-dev
# Service Worker in public/ generieren
npx msw init public/ --save
# Prüfen: public/mockServiceWorker.js sollte existieren
ls public/mockServiceWorker.js
MSW unterstützt auch GraphQL: import { graphql } from 'msw' →
graphql.query('GetUser', resolver). Claude Code kann aus einem GraphQL-Schema
automatisch passende MSW-Handler für alle Queries und Mutations generieren.
6. Chromatic, Visual Regression und Design System
Chromatic ist der offizielle Cloud-Service für Storybook von den Storybook-Machern.
Es nimmt automatisch Screenshots aller Stories auf und vergleicht sie bei jedem Commit — pixel-genau.
Dazu fungiert Chromatic als zentrales Design System Repository: Stories werden
zur lebenden Dokumentation für Designer, Product Manager und Entwickler.
Visual
Was Chromatic leistet
Visual Regression: Automatische Screenshot-Diffs bei jedem PR |
Story Publishing: Shareable Storybook-URL für alle Stakeholder |
Review Workflow: Änderungen bestätigen oder ablehnen im UI |
Figma-Integration: Stories und Designs nebeneinander vergleichen
Storybook unterstützt MDX für reichhaltige Dokumentationsseiten — Markdown mit eingebetteten
Stories und React-Komponenten. Ideal für Design System Guidelines.
Chromatic kann Stories und Figma-Designs automatisch nebeneinander stellen. Designer sehen sofort
ob die Implementierung mit dem Design übereinstimmt — ohne Entwickler zu fragen.
1
Storybook Addon installieren
npm install @chromatic-com/storybook --save-dev und in main.ts eintragen.
npx chromatic --project-token=TOKEN — Chromatic hostet Storybook und zeigt Figma-Designs daneben.
4
Review-Link teilen
Designer und PMs bekommen einen Link zum veröffentlichten Storybook — kein Setup nötig.
Fazit: Claude Code als Storybook-Multiplikator
Storybook 8 ist die leistungsfähigste Version bisher — mit Vite-Builder, nativen Interaction
Tests und nahtloser MSW-Integration. Der echte Hebel entsteht jedoch wenn Claude Code als
intelligenter Assistent hinzukommt:
Story-Generierung: Aus einer Komponente werden in Sekunden 5–10 durchdachte Stories mit sinnvollen Testfällen
Lücken-Analyse: "Welche Edge Cases fehlen in meinen Stories?" — Claude Code antwortet mit konkreten Vorschlägen
Refactoring: "Migriere alle Stories von CSF2 auf CSF3" — massenhafter, konsistenter Umbau
MSW-Handler: Aus OpenAPI-Specs oder GraphQL-Schemas werden automatisch Handler generiert
Docs-Texte: JSDoc-Beschreibungen für alle Props eines gesamten Ordners auf einmal schreiben
Das Ergebnis: Ein lebendiges Design System das immer aktuell ist, weil der Aufwand für Stories
und Tests so niedrig ist dass niemand mehr einen Grund hat sie wegzulassen.
Component-Driven Development mit KI-Unterstützung ausprobieren
Starte deinen kostenlosen Trial und erlebe wie Claude Code dein Storybook-Workflow
auf das nächste Level hebt — von der ersten Story bis zum Chromatic-Dashboard.