Comprehensive Storybook story creation guidelines. Covers story structure, naming conventions, and visual testing patterns...
このスキルは、Storybook ストーリー作成における標準とベストプラクティスを定義します。
ストーリー作成時:
重要: ビジュアルテストのため、条件分岐による見た目の違いにフォーカス
Storybook ストーリー作成時は以下のルールに従ってください:
error && <ErrorMessage />、isLoading && <Spinner /> などuser ? <UserMenu /> : <LoginButton /> などisVisible: false のような何も表示されない状態component のみを指定fn() を使用し、meta には含めない@/ エイリアスを使った個別インポートErrorState, エラー状態)以下のアンチパターンを避けてください:
条件分岐なしのコンポーネント: Default ストーリー1つで十分
export const Default: Story = {
args: {
onClick: fn(),
children: "Button",
},
};
以下のような条件分岐がある場合、各ブランチのストーリーを作成:
| パターン | 例 | 作成するストーリー |
|---|---|---|
| エラー状態 | error && <ErrorMessage /> |
Default, ErrorState |
| ローディング | isLoading ? <Spinner /> : <Content /> |
Default, Loading, NoData |
| 認証状態 | user ? <UserMenu /> : <LoginButton /> |
LoggedIn, NotLoggedIn |
| 権限分岐 | hasPermission && <AdminPanel /> |
Default, AdminView |
「この2つのストーリーを並べて見たとき、ビジュアルの違いがハッキリ分かるか?」
答えが 「Yes」なら作成、「No」なら不要 です。
詳細なコード例とパターンについては、以下のリファレンスドキュメントを参照してください。
詳細な実装パターンとコード例は以下のリファレンスファイルに記載されています:
| ファイル | 内容 | 参照タイミング |
|---|---|---|
| story-patterns.md | 基本構造、条件分岐パターン、ローディング・認証状態、アンチパターンの詳細コード例 | ストーリー作成時、具体的な実装パターンが必要な時 |
ストーリーを作成する前に以下を確認:
&&, ?:, if)があるか?すべてにチェックが入る場合のみ、ストーリーを作成してください。
Storybook ストーリーは ビジュアルテストのためのツール です。条件分岐による見た目の違いにフォーカスし、単純な prop 値の違いや内部実装の詳細はストーリー作成の対象外です。迷った場合は「ビジュアルの違いがあるか?」を基準に判断してください。