Communitygithub.com

店舗検索システム

物理的な拠点発見のための体系的なフレームワークを設計・実装します。画面分割レイアウト、マップとリストの双方向同期、アクセシブルなキーボードナビゲーションのフォールバックを管理します。

店舗検索システム とは?

このスキルは、店舗検索、支店案内、ディーラーネットワーク、医療クリニック案内など、物理的な拠点を発見するためのインターフェースを設計するための体系的な方法論を提供します。デスクトップ向けのスプリットペインレイアウトとモバイル向けのタブ切り替えレイアウトを含む空間構成、レスポンシブ適応、マップマーカーとリストカード間の双方向同期、そしてキーボードとスクリーンリーダーによるアクセシビリティガードレールを定義します。小売、ヘルスケア、金融機関、飲食チェーンなど、複数の拠点を持つビジネスに最適で、単一拠点のビジネスや完全デジタルブランドには推奨されません。入力として拠点メタデータ、ユーザーの位置情報、地図プラットフォームの制約を受け取り、出力としてレスポンシブレイアウト仕様、拠点カードのアトミックデザイン、インタラクション状態マップ、アクセシビリティランドマークを生成します。ワークフローは、空間構成の確立、拠点カードの設計、検索とフィルタリング、双方向同期の実装、モバイルタッチ対応の5ステップで構成されています。

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

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

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

ドキュメント

店舗検索システム は何をしますか?

目的

店舗検索システムは、物理的な拠点発見インターフェース(支店案内、小売店検索、ディーラーネットワーク、医療クリニック案内など)を設計するための方法論を提供します。このシステムは、空間構成、レスポンシブ適応、インタラクション同期、アクセシビリティガードレールを定義し、デジタル検索と物理的な目的地を橋渡しします。これにより、ユーザーは認知負荷、レイアウトの不安定性、アクセシビリティのブロックなしに、近くの拠点を見つけ、店舗詳細を評価し、そこへ移動できるようになります。

ユースケース

  • 小売・ディーラーネットワーク: 顧客を実店舗、パートナー小売店、正規サービスセンターへ案内します。
  • ヘルスケア・診療所: 患者が近くの緊急医療施設、病院、専門医療機関を見つけるのを支援します。
  • 金融機関: ATMネットワークや支店の場所を、特定のサービス(例:ドライブスルー、公証人)とともに表示します。
  • レストラン・飲食チェーン: 顧客が近くの店舗を見つけ、リアルタイムの営業状況を確認し、テイクアウト/配送注文を開始するのを支援します。

使用すべきでない場合

  • 単一拠点ビジネス: 企業が1〜2つのオフィスしか持たない場合、完全な検索インターフェースは過剰です。静的マップを埋め込んだシンプルな連絡先ページで十分です(site-navigation-system または連絡先ページガイドラインを参照)。
  • 完全デジタル/Eコマースブランド: 物理的な拠点や受取ポイントを持たないビジネス。
  • 動的物流・ルーティング: 高度なライドシェアやリアルタイム配送追跡アプリケーションには、継続的なGPS追跡と動的ルーティングが必要であり、これらは専門的なGIS/リアルタイム交通システムの対象です。

入力

  1. 拠点メタデータ一覧: 座標セット(緯度/経度)、物理住所、連絡先詳細(電話、メール)、営業時間、および特定の拠点機能やサービス(ファセット)。
  2. ユーザー位置情報シグナル: 位置情報APIの利用可否、ユーザーが入力した郵便番号、または市区町村テキスト入力。
  3. 地図プラットフォームの機能: 基盤となる地図プロバイダー(例:Google Maps API、Mapbox GL JS、Leaflet)の制約とカスタムスタイリングパラメータ。
  4. 主要ユーザー目標: ユーザーは主にすぐに訪問したいのか(道順と営業時間が必要)、拠点に連絡したいのか(電話番号が必要)、在庫を確認したいのか(在庫システムへの接続が必要)。

出力

  1. 空間レイアウト設計図: レスポンシブな空間レイアウト仕様(デスクトップのスプリットペイン比率、モバイルの積み重ねタブパネル)。
  2. アトミックデザイン仕様: 拠点カード、検索/フィルタヘッダー、地図マーカーの詳細設計。
  3. インタラクション・状態マップ: マーカークリック同期の定義済み動作、ホバー状態、リスト読み込みインジケーター、カード/マーカーの関連付け。
  4. アクセシビリティランドマーク・キーボードマップ: 詳細ビューのフォーカストラップメカニズム、スクリーンリーダー用aria-liveアナウンス、非視覚的地図ナビゲーションパスの定義。

ワークフロー

1. 空間構成の確立

地図と拠点リストの間の空間的関係を設計します。

  • デスクトップレイアウト(スプリットペイン): 分割画面デザインを使用します。
    • サイドバーペイン(幅35%〜40%): 左側(LTR言語の場合)に配置し、読み取り階層の開始点として確立します。メインページから独立してスクロールし、検索入力と拠点リストにアクセス可能な状態を維持します。
    • 地図ペイン(幅60%〜65%): 右側に固定された永続的な要素として設定します。
  • モバイルレイアウト(切り替え可能タブ): 狭いビューポートでは地図とリストを並べて表示できないため、画面の上部または下部に切り替えバーを実装します。
    • 「リストビュー」タブ: 検索入力と縦方向のカードリストを表示します。デフォルトのタブとして推奨します。
    • 「地図ビュー」タブ: 全画面表示の地図を表示します。
    • アクション層: フローティングコントロール(例:「このエリアを検索」ボタンや位置情報ピン)が地図の上に重なり、ナビゲーションを妨げないようにします。

2. 拠点カードのアトミックデザイン定義

拠点カードは主要な情報単位です。要素を認知スキャン優先度順に配置します。

+-------------------------------------------------------------+
|  [カテゴリタグ]                            [距離: 0.8 mi] |
|  **拠点タイトル / 支店名**                                  |
|  [星評価 / レビュー(オプション)]                          |
|                                                             |
|  123 物理住所, 市区町村, 都道府県 ZIP                       |
|  ステータス表示: [営業中 / 閉店](20:00に閉店)              |
|                                                             |
|  [ボタン: 道順]     [ボタン: 電話]    [リンク: 詳細]      |
+-------------------------------------------------------------+
  • 第一階層: 拠点名と検索中心からの距離。距離はリアルタイムで計算され、非常に視認性が高い必要があります(右上)。
  • 第二階層: 住所とリアルタイムの営業/閉店ステータス(色分けとテキストを組み合わせて使用。例:営業中は緑、閉店は赤)。
  • 第三階層: 主要アクションとして、タッチしやすいCTAボタン(例:「道順」、「電話」、「詳細を見る」)。

3. 検索とファセットフィルタリングの設計

サイドバーのヘッダー部分に、直感的なクエリとフィルタリングツールを提供します。

  • 検索入力: 郵便番号、市区町村名、住所をサポートし、オートコンプリートメニューを備えた統合入力。
  • 現在地トリガー: 標準的な「クロスヘア」アイコンで表され、スクリーンリーダー用に適切にラベル付けされた(aria-label="現在地の近くの拠点を検索")、目立つアクセシブルな位置情報ボタン。
  • 半径フィルター: 検索半径を絞り込めるドロップダウン(例:5、10、25、50マイル)。
  • ファセットドロップダウン: 店舗固有の機能(例:「ドライブスルー」、「車椅子対応」、「24時間」)のクイックフィルター。フィルターボタンにバッジを表示して選択数を示します。

4. 双方向インタラクション同期の実装

地図マーカーとリストカードは統一システムとして動作する必要があります。明確なインタラクティブ関係を確立します。

  • リストカードホバー/フォーカス -> 地図マーカー: リストカードのホバーまたはフォーカスにより、対応する地図マーカーの視覚的状態が変化します(例:拡大、色変更、z-index調整による前面表示)。
  • 地図マーカークリック -> リストカード: 地図マーカーのクリックにより、以下の動作が発生します。
    • サイドバーリストを自動スクロールし、対応するカードを表示します。
    • カードを短いトランジションアニメーション(例:微妙な背景パルス)でハイライトします。
    • マーカー上に店舗名、距離、「道順」リンクを含む地図「情報ウィンドウ」(ポップアップ)を開きます。
  • このエリアを検索(地図ドラッグ): ユーザーが地図を初期検索中心からパンまたはズームした場合にのみ、地図ペインの上部中央に表示される「このエリアを検索」フローティングボタンを提供します。

5. モバイルタッチと地図適応の確立

モバイルデバイスでのインタラクションを管理し、フラストレーションを防ぎます。

  • スクロールハイジャック回避: デフォルトでモバイル地図のジェスチャーベースのズームを無効にします(パンまたはズームには2本指ドラッグが必要)。これにより、ユーザーがページをスクロールしようとした際に地図に「はまって」しまうのを防ぎます。
  • フローティングコントロール: フローティングのズーム(+ / -)コントロールと位置情報ボタンを地図の右下に配置し、高コントラストの影と最小タッチターゲット44x44pxでスタイリングします。
  • カードカルーセルオーバーレイ: モバイル地図ビューでは、ビューポート下部にスワイプ可能な水平カードカルーセルを表示し、単一のアクティブまたは最も近い拠点を表示して、地図探索と詳細を統合します。

決定ルール

  • 「デフォルト検索」ルール: 検索クエリや位置情報許可なしで検索ページが読み込まれた場合:
    • 空の地図を表示しない。
    • IPジオロケーションに基づいて最も近い拠点をデフォルト表示するか、すべての拠点をアルファベット順/優先順に表示します。
  • 「結果なし」回復ルール: ユーザーが拠点のないエリアを検索した場合:
    • 地図をズームアウトして、利用可能な最も近い拠点を表示します。
    • サイドバーリストに役立つメッセージを表示します(例:「[クエリ]の25マイル以内に拠点が見つかりませんでした。最も近い拠点を表示します:」)。
    • 「すべての拠点を表示」リンクを提供します。
  • ポップアップ vs. 詳細パネルルール:
    • 拠点のメタデータが最小限(住所と営業時間のみ)の場合、すべての情報を地図マーカーの情報ウィンドウポップアップ内に表示します。
    • 拠点のメタデータが豊富(在庫、チーム一覧、写真)の場合、「詳細を見る」をクリックすると、サイドバー内に全深度の詳細パネルがスライドアウトし、そこにキーボードフォーカスをトラップし、明確な「リストに戻る」ボタンを提供します。

制約

  • アクセシビリティ(キーボードナビゲーション):
    • キーボードユーザーは、地図を直接使用せずに検索フロー全体と拠点リストをナビゲートできる必要があります。
    • 地図マーカーはキーボードフォーカス可能(tabindex="0")であるか、アクセシブルなリスト代替手段で表現される必要があります。
    • 検索結果が更新された場合、aria-live="polite"要素を使用してスクリーンリーダーに変更を通知します(例:「ワシントン州シアトル近郊で3件の拠点が見つかりました」)。
  • タッチターゲットサイズ: すべてのボタン、地図マーカー、フィルターコントロールはWCAG 2.2 SC 2.5.8(最小24x24px、周囲にスペースあり)を満たし、カード上の主要アクショントリガーとフローティングコントロールは親指の快適さのために44x44pxにサイズ設定する必要があります。
  • 視覚的コントラスト: 高コントラストの地図が推奨されます。標準マーカーとアクティブマーカーラベルは、地図背景に対して少なくとも3:1のコントラスト比を持つ必要があります。カードとポップアップ内のテキストはWCAG AA(4.5:1)を満たす必要があります。
  • レイアウトシフト防止: アクティブ検索中にサイドバーにスケルトンカードを使用して読み込み状態のための垂直/水平スペースを予約し、累積レイアウトシフト(CLS)を防ぎます。

よくある失敗パターン

  • モバイルスクロールトラップ: モバイル画面でのスクロールが地図のパン/ズームのみを引き起こし、ユーザーが地図コンポーネントをスクロールして通り過ぎることができず、ページに閉じ込められる。
  • 双方向同期の破綻: 地図マーカーをクリックするとポップアップは開くが、サイドバーの対応するカードまでスクロールしたりハイライトしたりせず、ユーザーが手動で名前を照合せざるを得なくなる。
  • 「盲目の地図」(キーボード排除): 地図マーカーをフォーカス不可能なSVG形状やキャンバス要素として実装し、物理的な拠点がスクリーンリーダーやキーボード専用ユーザーにとって完全に到達不可能になる。
  • クエリなしの行き止まり: 初期ページ読み込み時に完全な空白画面と静かな地図を表示し、ユーザーが先に検索しなければならないと推測せざるを得なくなる。
  • 地図ドラッグの遅延: 小さな地図ドラッグごとに数百のマーカーをリアルタイムで取得・レンダリングしようとし、インターフェースがフリーズする。地図範囲変更にデバウンス(250〜400ms)を実装し、近くのマーカーをクラスタリングする。

検証基準

  • デスクトップ(分割画面サイドバー)とモバイル(切り替え可能なリスト/地図タブ)の両方に対して空間レイアウトが定義されている。
  • 双方向同期が指定されている(マーカークリックでカードをハイライト/スクロール、カードホバー/フォーカスでマーカーをハイライト)。
  • モバイルのジェスチャーズームはデフォルトで無効になっている(2本指スクロールが必要)ことで、モバイルスクロールハイジャックを防止している。
  • 検索クエリ更新時のレイアウトシフト(CLS)を避けるために、読み込み状態(スケルトン)が設計されている。
  • アクセシブルな代替手段が定義されている:キーボードユーザーは、マウスで地図キャンバス上のアイテムをホバーすることなく、すべての拠点を閲覧し、詳細を読み、道順を取得できる。
  • 検索結果が更新されたとき、スクリーンリーダーが説明的で丁寧なaria-liveアナウンスを受信する。
  • すべてのインタラクティブなカード要素、マーカー、ズームボタンのタッチターゲットが、少なくともWCAG 2.2の24x24pxの最小サイズを満たしている(主要CTAは44x44pxを推奨)。
  • 拠点カードと地図ポップアップ内のテキストコントラストがWCAG AA(4.5:1)を満たしている。
  • 結果ゼロの検索と位置情報許可拒否に対して、明確なフォールバックフローが設計されている。

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 a systematic framework for global command menus (Cmd+K panels) that combines keyboard-driven navigation, command execution, and shortcut discovery into an accessible, responsive overlay.

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 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.

関連スキル