【すとーりーぶっく】

Storybook とは?

最終更新:
💡 UIコンポーネントの「ショーケース」

UIコンポーネントやページを、アプリ本体から切り離して開発・テスト・文書化するためのツール。React、Vue、Angularなど多くのフレームワークに対応する。

📌 このページのポイント
Storybook ― UIコンポーネントのカタログ コンポーネント一覧 Button Input Card Modal Header Buttonコンポーネント プレビュー Primary Secondary Danger Props: label: "送信" variant: "primary" disabled: false ← 自由に変更して 動作を確認できる 独立して開発 視覚的にテスト ドキュメント化
Storybookのイメージ
ひよこ ひよこ
なんでStorybookが必要なの?
ペンギン先生 ペンギン先生
ボタン1つ確認するのに、アプリ全体を起動してログインして特定のページまで移動して…って大変でしょ?Storybookならコンポーネントだけを取り出して表示できるから、エラー表示や読み込み中のような、アプリ上では再現しにくい状態も確かめやすいんだ
ひよこ ひよこ
ストーリーってどう書くの?
ペンギン先生 ペンギン先生
Button.tsxの横にButton.stories.tsxのようなファイルを作るよ。デフォルトエクスポートにコンポーネントの情報を書いて、名前付きエクスポートの1つひとつがストーリーになる。PrimaryやDisabledのように状態ごとに用意して、argsで渡す値を決めるんだ
ひよこ ひよこ
テストにも使えるの?
ペンギン先生 ペンギン先生
使えるよ。書いたストーリーを土台に、クリックなどの操作を確かめるインタラクションテスト、アクセシビリティのチェック、見た目の変化を比べるビジュアルテストができるんだ。ビジュアルテストのクラウドサービスとしては、Storybookをメンテナンスしている会社のChromaticがあるよ
ひよこ ひよこ
デザインシステムとの関係は?
ペンギン先生 ペンギン先生
デザインシステムのコンポーネントを一覧できるカタログとしてよく使われるよ。使い方の説明もドキュメントとして一緒に書けるから、デザイナーやほかの開発者が「このボタンはこう使う」を確認しやすくなるんだ
ひよこ ひよこ
導入は簡単?
ペンギン先生 ペンギン先生
新しく入れるだけなら、npm create storybook@latest のコマンドで初期設定ができるよ。ただ既存のアプリだと、コンポーネントがAPI呼び出しやグローバルな状態に依存していて、単体で表示するためにモックを用意する作業が必要になることがあるんだ。最初は依存の少ない部品から始めるといいね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Storybook」って出てきたら「UIコンポーネントを単体で開発・確認・カタログ化するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Storybook」 = 物語の本
💬 コンポーネントのいろいろな状態を「ストーリー(story)」と呼び、それを集めた本というイメージだよ

参考資料

← 用語集にもどる