Communitygithub.com

coastdigitalgroup/coastai-skills

グローバルコマンドメニュー(Cmd+Kパネル)の体系的なフレームワークを設計します。キーボード駆動のナビゲーション、コマンド実行、ショートカット発見を統合し、アクセシブルでレスポンシブなオーバーレイを実現します。

coastai-skills とは?

このスキルは、コマンドパレットシステムの設計と実装のための包括的なフレームワークを提供します。Cmd+KまたはCtrl+Kで起動するグローバルオーバーレイメニューを中心に、キーボードショートカットによる検索、ナビゲーション、アクション実行をシームレスに統合します。特にSaaSダッシュボード、開発者向けポータル、エンタープライズCRMなど高密度なWebアプリケーションで効果的であり、標準的なナビゲーションバーの限界を克服します。このスキルは、視覚的な構造化、WCAG 2.2 AAに準拠したアクセシビリティ、レスポンシブデザイン、タッチデバイスへの適応など、実装に必要な詳細な設計仕様とワークフロー、決定ルール、検証基準を提供します。開発者はこのフレームワークに従うことで、ユーザーエクスペリエンスを向上させ、認知負荷を軽減し、アクセシブルなコマンドパレットを迅速に構築できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/command-palette-system

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

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

ドキュメント

コマンドパレットシステム

目的

コマンドパレットシステムは、グローバルでキーボード起動のオーバーレイメニュー(通常は Cmd+K または Ctrl+K で呼び出し)のための設計と空間的なフレームワークを提供します。現代の高密度なWebアプリケーション、開発者プラットフォーム、コンテンツが豊富なドキュメンテーションポータルでは、標準的なナビゲーションバーでは機能が不足します。コマンドパレットは「コマンドセンター」として機能し、パワーユーザーに検索、ナビゲーション、アクション実行への摩擦のない直接的なキーボード経路を提供すると同時に、キーボードショートカットのインタラクティブな辞書としても機能します。

このスキルは、コマンドパレットが空間的に人間工学的で、認知的な疲労を防ぐために視覚的に構造化され、高度なアクセシビリティ仕様(WCAG 2.2 AA)に完全準拠していることを保証します。

ユースケース

  • SaaSダッシュボード向けのグローバルショートカット駆動ワークスペースコントローラーの設計
  • 開発者向けポータルやドキュメント検索ポータル(APIリファレンスなど)の構造化
  • エンタープライズCRMやCMSプラットフォーム向けの迅速なアクション管理パネルの実装
  • 複雑で多層的なWebプロダクト内での統合コマンドラインインターフェース(CLI)の作成

使用すべきでない場合

  • 静的マーケティングランディングページ: ユーザーの意図が純粋に探索的でコンバージョン重視の場合。グローバルナビゲーションバーと明確なコールトゥアクション(CTA)の方が効果的です。
  • 浅い情報サイト(15ページ未満): コマンドパレットの実装と習得のオーバーヘッドが、ナビゲーションの利点を上回る場合。
  • シンプルなモバイル消費者向けサイト: 画面領域が最小限で、ユーザーが外部物理キーボードなしのタッチ操作に完全に依存する場合。

入力

  1. コマンドとアクションのインベントリ: 検索可能なアクション、ページ、設定、ドキュメントの包括的な分類。
  2. コンテキストマッピングルール: どのコマンドがグローバルで、どれがコンテキスト固有であるかのルール(例:「プロジェクトを削除」はプロジェクト表示中のみ表示)。
  3. キーボードショートカットシステム: アクションと物理キーボードショートカットのマッピング(例:「ダッシュボードに移動」には G 次に D)。
  4. ブランドデザイントークン: タイポグラフィスケール、色、スペーシング比率、シャドウトークン(fluid-spacing-system および fluid-typography-system から)。

出力

  1. トリガーアフォーダンス仕様: 永続的なエントリポイントとキーボードショートカットバッジのビジュアルデザイン。
  2. パレットレイアウトアーキテクチャ: オーバーレイモーダル用のグリッド構造、結果のグループ化、カテゴリナビゲーション、ヘルパーフッター。
  3. コマンド行のビジュアル仕様: アイコン、コマンドタイトル、カテゴリバッジ、ショートカット注釈の階層仕様。
  4. キーボードとアクセシビリティ仕様: ARIA APG Combobox パターンに準拠した正確なキーボードイベントマッピングとARIA状態仕様。

ワークフロー

1. パレットトリガーとエントリポイントの確立

コマンドパレットはデフォルトで非表示であるため、発見可能なエントリポイントを設計する必要があります:

  • 永続的なヘッダートリガー: グローバルヘッダー内の検索バーを模したボタン。虫眼鏡アイコン、「検索またはコマンドを実行...」などのテキストラベル、右寄せの物理キーボードショートカットバッジ(例 ⌘K または Ctrl+K)を備えます。
  • フローティングコマンドボタン: ダッシュボード集約型または全画面ビューポートの場合、ビューポートの右下隅に控えめなトリガーボタンを配置します。
  • 不可視のグローバルリスナー: ドキュメント上のどこでも(テキスト入力にフォーカスがある場合を除く)、Cmd+K(macOS)または Ctrl+K(Windows/Linux)を押すと即座にパレットが開くことを保証します。

2. モーダルオーバーレイと背景(スクリム)の設計

  • 背景(スクリム): 高コントラストで半透明の背景(例 rgba(15, 23, 42, 0.4))を使用して、背景ページを暗くし、注目をアクティブなタスクに完全に集中させます。
  • 垂直配置: モーダルを水平方向に中央揃えにしますが、絶対的な垂直方向の中央ではなく、ビューポートの上部 10%~15% に固定します。これにより自然な視線の高さに合わせ、タッチスクリーン上の物理的な仮想キーボードのためのスペースを確保します。
  • サイズ制限: 快適なスキャン範囲に幅を制限します。理想的には 600px~680px の間です。高さは動的とし、最大 450px~550px に制限して、小さなラップトップ画面でもオーバーフローしないようにします。

3. 内部レイアウトグリッドの構造化

コマンドパレットを4つの明確な水平ゾーンに分割します:

  1. 検索・フィルターゾーン: ボーダーレスで全幅の入力フィールド。目立つ検索アイコン(最小20px)を備えます。ユーザーをガイドするプレースホルダーテキスト(例:「コマンドを入力または検索...」)を使用します。
  2. カテゴリフィルターバー(オプション): コンパクトなチップまたはセグメント化されたコントロールの水平行(例:「すべて」、「アクション」、「ページ」、「ユーザー」)。ユーザーが検索前に結果をフィルタリングできるようにします。
  3. 結果フィード(スクロールコンテナ): グループ化されたヘッダー(例:「最近」、「ナビゲーション」、「システム設定」)を持つスクロール可能なリストボックス。
  4. ヘルパーフッター: 低コントラストのステータスバー。キーボードガイド(例:「↑↓で移動」、「↵で選択」、「escで閉じる」)を表示します。
+-----------------------------------------------------------+
|  [検索アイコン]  コマンドを入力または検索...        [ESC] |
+-----------------------------------------------------------+
|  ( すべて )  ( アクション )  ( ページ )  ( メンバー )  ( ヘルプ ) |
+-----------------------------------------------------------+
|  最近の検索                                               |
|  [アイコン] 請求設定に移動                     [ ⌘ G ] [ B ]|
|  [アイコン] 新しい請求書を作成                [ ⌘ N ]     |
|                                                           |
|  ナビゲーション                                           |
|  [アイコン] ダッシュボード                               |
|  [アイコン] チーム設定                         [ ⌘ , ]     |
+-----------------------------------------------------------+
|  ↑↓で移動  |  ↵で選択  |  escで閉じる  |  ? ヘルプドキュメント |
+-----------------------------------------------------------+

4. コマンド行の視覚的階層の作成

結果リストの各項目は、ミリ秒単位でスキャン可能でなければなりません:

  • 左寄せアイコン: 項目の種類を示す明示的で高コントラストなアイコン(例:ドキュメントにはファイルアイコン、アクションには設定の歯車、人物にはユーザーアバター)。
  • プライマリラベル: コマンド自体のセミボールド、プライマリカラーのテキスト(例:「チームメンバーを招待」)。
  • セカンダリサブラベル(オプション): プライマリラベルの下または横に、文脈を与える薄暗い小さな説明文(例:「設定 > 組織」)。
  • 右寄せショートカットバッジ: そのコマンドに関連付けられた物理キーボードショートカットを、小さな高コントラストなキーストロークバッジ(例 ⌥I)で表示します。

5. インタラクティブ状態とキーボード選択の定義

コマンドパレットは主にキーボードで操作されるため、キーボード選択状態がマウスホバーよりも優先されます:

  • アクティブ/フォーカスアイテム状態: 矢印キーで項目に移動した場合、目立つ背景塗りつぶし変更(プライマリライトトークンを使用、例 var(--color-primary-light))と左境界インジケーターを適用します。プライマリテキストはブランドカラーに変更されます。
  • ホバー状態(マウス): アクティブキーボード状態をミラーリングします。マウスを項目に移動すると、二重フォーカス状態を防ぐためにキーボード選択が更新されます。
  • 空の状態: 検索結果がない場合、代替アクションを示唆するクリーンで図解的な空の状態を表示します(例:「コマンドが見つかりませんでした。代わりにヘルプセンターを検索してみてください」と検索リンク)。
  • ローディング状態: 検索クエリの結果が非同期で取得される場合、レイアウトシフトを引き起こすスケルトンカードを避け、検索入力の下部に控えめな線状のローディングインジケーターを表示します。

決定ルール

  • 「Cmd+K 対 永続的検索」ルール: サイトの主な価値が構造化コンテンツの消費(eコマースカタログなど)である場合は、永続的な検索バーを使用します。価値が管理ワークフロー、コマンド実行、高密度ナビゲーションである場合は、Cmd+K コマンドパレットを使用します。
  • グループ化制限ルール: 同時に3~4以上のカテゴリのコマンドを表示しないでください。各カテゴリの最大表示項目数を5に制限し、それ以上存在する場合は「さらに表示...」オプションを提供します。
  • 「キーストローク数」ルール: コマンドの横に表示する物理キーボードショートカットは、3キーを超えてはいけません(例:Ctrl+Shift+P は許容、Ctrl+Alt+Shift+Z は複雑すぎる)。
  • 動的コンテキストルール: アクティブなルートに基づいてコマンドを動的にフィルタリングします。ユーザーが請求ページにいる場合は、デフォルト(未入力)の結果リストの上部に「クレジットカードを更新」や「請求書PDFをダウンロード」を優先表示します。

制約

1. アクセシビリティ(WCAG 2.2 AA 最低限)

  • ARIA Combobox パターン: ARIA Authoring Practices Guide (APG) に厳密に従ってマークアップを構成する必要があります:
    • 入力コンテナには role="combobox"、aria-expanded="true"、aria-autocomplete="list"、aria-controls="command-listbox-id" が必要です。
    • 結果リストには role="listbox" が必要で、各コマンド行には role="option" が必要です。
    • ユーザーが矢印キーを押すと、入力は aria-activedescendant をアクティブなオプションのIDに更新し、そのオプションには aria-selected="true" が設定されていなければなりません。
  • フォーカス管理: パレットを開くと、キーボードフォーカスをオーバーレイ内部に閉じ込める必要があります。Tab キーの押下は、パレット内で循環するためにインターセプトするか、完全に無効にする必要があります(オプションナビゲーションには矢印キーを推奨)。パレットを閉じると、フォーカスを正確にトリガー要素に戻さなければなりません。
  • スクリーンリーダーへの通知: 入力の隣に aria-live="polite" および aria-atomic="true" を持つ不可視の div を配置します。検索時に、結果ステータスを動的にこの領域に挿入します(例:「12件の結果が見つかりました。上下の矢印キーを使って移動してください」)。
  • コントラスト比: すべてのテキスト、ショートカットバッジ、フォーカスインジケーターは、WCAG AA(通常テキストは最低4.5:1、UI境界線と選択インジケーターは3:1)を満たす必要があります。
  • 背景のロック: パレットがアクティブな場合、アプリケーションの残りの部分は inert としてレンダリングされ、スクリーンリーダーから隠されなければなりません。<dialog>.showModal() を使用して、フォーカスの閉じ込め、背景の減光、ネイティブの Escape キーによる閉じる機能を実現します。

2. レスポンシブデザインとタッチ適応

  • タッチビューポート調整: モバイル画面では、コマンドパレットを全画面オーバーレイまたは下部スライドドロワーに切り替える必要があります。
  • 仮想キーボードの処理: 開いたら検索入力に自動フォーカスし、inputmode="search" を使用して、モバイルデバイスが仮想キーボードに正しい「検索」アクションボタンを表示するようにします。
  • 物理ヒントの非表示: タッチ専用デバイスでは、物理キーボードショートカットバッジ(例 ⌘K や ⌥I)は無関係であり、視覚的な乱雑さを生むため非表示にします。
  • タッチターゲットサイズ: 取り外し可能なタグ、カテゴリチップ、リスト行は、タッチスクリーン上で指タップに対応するため、少なくとも 44px の高さが必要です(WCAG 2.2 SC 2.5.8 に準拠)。

よくある失敗パターン

  • 「無限スクロール」の罠: 結果フィードがスクロールコンテナなしで100件以上の一致をレンダリングし、画面をオーバーフローさせてフッターガイドにアクセスできなくなる。
  • 背景のスクロールロックの欠如: ユーザーがコマンドパレットをスクロールナビゲーション中に、背景ドキュメントのスクロールを許容し、レイアウトの方向感覚を失わせる。
  • 入力フォーカスの喪失: カテゴリチップや結果オプションをクリックし、テキスト入力からのキーボードフォーカスを失い、キーボードユーザーがタブで戻る必要が生じる。
  • 理解不能なモバイル表示: 320pxのモバイル画面に小さなデスクトップ中央モーダルを維持し、プライマリラベルとショートカットバッジを切り詰める。
  • トリガー状態ミラーの欠如: 永続的なヘッダーボタンにキーボードショートカットが表示されておらず、キーボードユーザーがコマンドパレットの存在に気づかない。

検証基準

  • ヘッダーに明確な Cmd+K / Ctrl+K の視覚的ショートカットバッジを持つ永続的なトリガーボタンが存在する。
  • ページ上の任意の場所で Cmd+K または Ctrl+K を押すとモーダルが開く。
  • キーボードフォーカスが即座に検索入力に移動し、背景ページのスクロールがロックされる。
  • オプションのナビゲーションは上矢印キーと下矢印キーで行われ、非常に視認性の高いフォーカスアクティブ状態を持つ。
  • オプション行は構造化された階層を持つ:左アイコン、太字のアクションタイトル、コンテキストルート階層、右ショートカットバッジ。
  • ARIA APG Combobox パターンが完全に指定されており、role="combobox"、role="listbox"、role="option"、aria-activedescendant が含まれている。
  • aria-live="polite" 領域が存在し、検索結果数の変更をスクリーンリーダーに通知する。
  • モバイルビューポートでは、パレットが全画面または下部ドロワーに適応し、物理ショートカットバッジを非表示にし、行の高さを最低44pxにサイズ変更する。
  • Escape キーを押すか、背景スクリムをクリックすると、パレットが閉じてトリガーボタンにフォーカスが戻る。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for progressive disclosure using accordions, ensuring structural integrity, visual affordances, and accessibility across different content densities and devices.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for long-form content, managing readability, vertical rhythm, and information density to ensure a superior reading experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for informational elements that communicate state (Badges) and categorization (Tags) with clarity and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for non-overlay notifications, managing global announcements and contextual inline alerts to communicate system states without interrupting the user's flow.

coastdigitalgroup/coastai-skills

Design and implement a systematic, asymmetrical bento-grid layout framework to organize diverse content types cohesively while maintaining strict visual hierarchy, logical focus order, and responsive flexibility.

coastdigitalgroup/coastai-skills

Design a responsive, mobile-first bottom navigation bar and persistent action dock system for mobile websites and web applications, establishing spatial anchors, tab bar anatomy, badge indicators, thumb-zone ergonomics, safe area inset handling, active/inactive state contrast, and desktop responsive adaptation rules.

coastdigitalgroup/coastai-skills

Design a mobile-first bottom sheet overlay system with configurable detents, drag affordances, safe area padding, responsive desktop modal/popover adaptation, and WCAG AA accessibility compliance.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for secondary navigation trails that provide orientation, context, and one-click access to parent levels in deep information architectures.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for buttons and interactive triggers, managing visual hierarchy, variant logic, and action grouping to ensure clear intent and accessible interaction.

coastdigitalgroup/coastai-skills

Design a systematic framework for date and time selection, managing calendar grids, range pickers, and scheduling interfaces to ensure precision and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for modular content containers that maintain hierarchy, structural integrity, and action alignment across variable content and responsive viewports.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for horizontal discovery components, managing navigation affordances, scroll behavior, and accessibility to ensure effective content density without compromising usability.

coastdigitalgroup/coastai-skills

Design a systematic, highly accessible, and developer-friendly UI layout framework for code blocks, snippet showcases, multi-file code tabs, line-highlighting, diff views, and syntax token contrast in technical documentation and developer platforms.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for threaded conversations, managing nesting depths, action hierarchies, and community signaling to foster engagement and readability.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for side-by-side comparison interfaces, managing high attribute density and responsive complexity to support informed decision-making.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for user privacy, managing consent banners, preference centers, and persistent privacy controls to balance legal compliance with user trust.

coastdigitalgroup/coastai-skills

Design and implement a systematic, highly accessible, and responsive visual layout framework for conversational chat widgets, live chat boxes, and chatbot panels that ensures clear message scannability, native focus flow, and seamless mobile keyboard adaptation.

coastdigitalgroup/coastai-skills

Design a systematic, accessible, and high-conversion framework for custom select dropdowns and comboboxes, defining anatomy, states, search-filtering, and responsive mobile-adaptive patterns.

coastdigitalgroup/coastai-skills

Design and specify a systematic dark theme framework, establishing rules for elevation-based surface colors, desaturated brand accents, text legibility, and media adaptation to ensure an accessible, low-fatigue experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic color palette that ensures WCAG 2.2 accessibility compliance. Trigger this skill when asked to define brand colors, create UI themes, or establish a visual system for a website.

関連スキル