Communityコーディング&開発github.com

UX Playbook

React + Mantine Webアプリ向けUI構築・レビューのためのUXナレッジベース。GitHubのPrimerデザインガイダンスを基に、ページ、ダイアログ、フォーム、テーブル、ナビゲーション、ボタン、メッセージ、および空・ローディング・エラー状態など、ユーザーが見たり操作したりするあらゆる要素の追加・変更時に活用します。

UX Playbook とは?

UX Playbookは、React + Mantineを使用したWebアプリケーションのUIを構築・レビューするための実践的なガイドです。GitHubのPrimerデザインガイダンスを基に、Mantineコンポーネントを**いつ**使うべきか、画面に必要な**状態(ローディング・空・エラー)** は何か、レイアウトや文言をどうすべきかを体系的にまとめています。このスキルは、Claude Code, Cursor, CodexなどのAIエージェントと連携して、PRレビューや新機能のフロー計画、既存画面の小さな変更から新規画面の設計まで幅広いタスクをサポートします。具体的には、変更規模に応じてS/M/Lの3段階のワークフローを定義し、各段階に応じた成果物(UX仕様書、ビジュアルチェック、レビュールーブリック)を提供します。また、ビジネス要件、プロダクト独自ルール、Mantineデフォルトの優先順位を明確にし、常にプロダクトの既存コンポーネントを優先することを推奨しています。さらに、データを破壊する操作の確認・元に戻せる仕組み、キーボード・スクリーンリーダー対応、カラーに依存しない情報伝達など、アクセシビリティと一貫性を重視したルールを多数含んでいます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vinh466/ux-playbook/tree/HEAD/skills/ux-playbook

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

UX Playbook は何をしますか?

ビジネスに正しく、使いやすく、一貫性のあるUIを構築します。Mantineがコンポーネントを提供し、このプレイブックがいつどれを使うか、画面に必要な状態、結果の確認方法を伝えます。タスクの必要に応じて該当ページだけを読んでください。

優先順位

情報源が矛盾する場合、優先順位が高い方が優先されます:

  1. ビジネス要件: 仕様、チケット、オーナーの指示。黙って変更しないでください。
  2. プロダクト独自のルール: AGENTS.md / CLAUDE.md、そのUX・デザインドキュメント、既存コンポーネント。
  3. このプレイブック
  4. Mantineのドキュメントとデフォルト

2と3が矛盾する場合は2に従ってください。2または1が間違っていると思っても、それに従い、UX提案を提起してください。

UI作業の前に、プロダクトのUXルールを探してください(リポジトリのドキュメント内で「UX」「UI」「design」「panel」を検索)。存在しない場合は、プロダクト概要テンプレートを使って草案を作成し、計画またはPR内でその草案を提案してください。その際、推測にはすべて [Assumption] とラベルを付けてください。

階層を選ぶ

階層変更内容すべきこと
S既存画面への小さな変更:フィールド、ボタン、メッセージ、列触るコンポーネントのページを読み、チェックリストを実行。レイアウトが変わった場合はスクリーンショットを撮る。
M新しい画面、ダイアログ、フォーム、または画面への大規模な変更最初に簡潔なUX仕様書を書く。構築後、ビジュアルチェックを実施。ルーブリックでセルフレビュー。
L画面をまたがる新しいフロー、新機能領域、ナビゲーションの変更2~3の選択肢を提示するリサーチノートを作成。安全な選択肢Aを構築。その後、各画面を階層Mとして扱う。

各階層の詳細と成果物についてはワークフローを参照。

該当ページを見つける

判断したいこと読むページ
ページ構造、階層、スペーシング、レスポンシブレイアウトdecisions/layout
ボタン、プライマリ vs セカンダリ、アイコンボタン、アクションメニューdecisions/actions
モーダル vs ドロワー vs ポップオーバー vs インライン、ツールチップdecisions/overlays
アプリナビゲーション、タブ、パンくずリスト、ステッパー、ページネーション、リンク vs ボタンdecisions/navigation
テーブル、リスト、カード、ステータスラベル、日付、長いテキストdecisions/data-display
トースト、アラート、バナー、インラインメッセージdecisions/feedback
選択に使う入力:チェックボックス、スイッチ、ラジオ、セグメントコントロール、セレクト、コンボボックス、チップdecisions/selection
フォーム、ラベル、バリデーション、必須項目patterns/forms
保存ボタン、オートセーブ、未保存の変更patterns/saving
まだ何も表示するものがない、検索結果なしpatterns/empty-states
データまたは処理の完了を待っているpatterns/loading
詳細オプション、「さらに表示」、オンデマンド詳細patterns/progressive-disclosure
機能の紹介、初回起動、ヒントpatterns/feature-onboarding
バックエンドダウン、オフライン、部分的な障害、権限不足patterns/degraded-experiences
削除、リセット、失効、上書きflows/destructive-actions
ラベル、ボタンテキスト、エラーテキスト、空状態テキストwriting
キーボード、フォーカス、ラベル、コントラスト、ARIAaccessibility
Mantine API、テーマトークン、バージョンの確認mantine
ルールの背後にある理由principles

常に守ること

  • 独自のコンポーネントを作成する前に、プロダクトの既存コンポーネントとMantineを使用すること。1つの仕事に1つのコンポーネントを使う。
  • すべてのデータビューにローディング、空、エラーの各状態を用意する。すべてのアクションに進行中状態と結果を用意する。
  • ビューごとに1つのプライマリアクションを維持する。セカンダリアクションは控えめに。稀なアクションはメニューに配置する。
  • 現在利用できないアクションは表示されたままにして理由を説明する。そのテキストはキーボードとタッチでアクセス可能とし、ツールチップだけに頼らない。disabled属性よりも非アクティブな外観(data-disabled)を優先し、送信ボタンは決して無効にしない:actions参照。
  • データを破壊する操作は確認を取るか、元に戻せるようにする。エラー時にユーザーの入力を失ってはならない。
  • すべての入力に表示ラベルを付ける。意味を色だけで伝えてはならない。すべての要素がキーボードで操作可能であること。
  • 電話幅とデスクトップ幅、ライトモードとダークモードで結果を確認する:ビジュアルチェック参照。
  • ここの例はリテラルな英語の文字列を使用。プロダクトのi18n機構を使用すること。

改善の余地があると思ったとき

より良いフローやコンポーネントを提案してもよいし、すべきです。ルールは安全なデフォルトを構築し、提案を添付することです:

  • 仕様で要求されたものを、ここにあるパターンを使って構築してください。
  • あなたのアイデアを、UX提案として計画またはPR内に固定フォーマットで追加してください。
  • 仕様がデータを失う、秘密を漏洩する、キーボードやスクリーンリーダーに依存するユーザーをブロックする、または自己矛盾している場合にのみ、構築を止めて確認を取ってください。

レポート

すべてのUIタスクは、PRまたはレポートに UX notes セクションを付けて終了します:

## UX notes
- 階層: M — 新規「Mods」タブ
- 状態: loading ✓ empty ✓ error ✓ disabled-with-reason ✓
- スクリーンショット: 1280 light/dark, 390 light/dark (添付)
- ルーブリック: すべて合格;該当なし: 破壊的操作(なし)
- 仮定: [Assumption] modsリストは短い(< 50)ため、ページネーションなし
- UX提案: 1件(以下参照)

関連スキル