Communitygithub.com

ショッピングカートUIシステム

Eコマースのショッピングカート向けに、アクセシブルでコンバージョン最適化された体系的レイアウトフレームワークを設計します。スライド式ミニカートドロワー、専用カートページ、および明細行コンポーネントの空間構造を定義します。

ショッピングカートUIシステム とは?

この「Shopping Cart UI System」スキルは、DTC(Direct-to-Consumer)およびマルチチャネルEコマースにおける、アクセシブルでコンバージョン率の高いショッピングカートのUIフレームワークを提供します。スライド式ミニカートドロワー、専用カートページ、カート明細行のアーキテクチャなど、主要なカートインタラクションのための体系的なデザインアプローチを定義します。このスキルは、予期しないレイアウトシフト(CLS)、アクセスしにくい数量セレクター、モバイルでの操作困難など、標準的なカートの摩擦点を解決します。また、WCAG AAアクセシビリティルールへの準拠を確保し、キーボードフォーカスルーティング、ARIAライブトリガー、フォーカストラップの実装ガイドラインを提供します。主にFigmaやSketchなどのデザインツール、およびReactやVue.jsなどのフロントエンドフレームワークでの使用を想定しており、デザイントークンとプロダクトデータに基づいて実装可能なUI仕様を生成します。

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

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

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

ドキュメント

ショッピングカートUIシステム は何をしますか?

目的

ショッピングカートUIシステムは、DTC(Direct-to-Consumer)およびマルチチャネルEコマースのショッピングカート向けに、アクセシブルでコンバージョン率の高いビジュアルおよび構造的フレームワークを提供します。製品発見(PDP)とチェックアウト完了の間の重要なトランザクションブリッジとして機能するショッピングカートは、注文の更新、プロモーションナッジ、クロスセル、リアルタイム配送進捗表示をエレガントに処理する必要があります。

体系的なデザインアプローチは、標準的なカートの摩擦点(例:アイテム更新時の予期しないレイアウトシフト(CLS)、判読不能なアイテムサマリー、モバイルでの隠れたインタラクティブコントロール、アクセスしにくい数量セレクター、チェックアウトへの明確な心理的パスの欠如)を解決します。このシステムは、一貫したスタイリング、スムーズなマイクロインタラクション、レイアウトの堅牢性、およびWCAG AAアクセシビリティルールへの厳格な準拠を保証します。

ユースケース

  • EコマースおよびDTC(Direct-to-Consumer)ポータル: 永続的なミニカートと専用チェックアウトレビューを利用するハイベロシティリテールプラットフォーム。
  • B2Bおよび卸売カタログ注文: 表形式リスト、マルチSKUセレクター、クイック追加ツールを備えた一括注文デスク。
  • サービスおよび体験予約エンジン: 複数日チケット、予約、レンタルアドオン、またはイベントパスの整理。
  • ソフトウェア、SaaS、デジタルグッズバンドラー: 最終支払いチェックアウト前にライセンス、サービスアドオン、サブスクリプションティアを集約。

使用すべきでない場合

  • 単一アイテムまたはワンクリックチェックアウト: カートをバイパスして直接チェックアウトに進むプラットフォーム(例:PDPでのApple Pay)の場合は、checkout-flow-optimization および product-detail-layout-system を使用してください。
  • 主要な製品閲覧: アイテムカードやリスト結果を表示する場合は、card-ui-system および filter-and-sort-system を使用してください。
  • 製品比較(横並び): 異なるプランや製品機能を比較する場合は、comparison-matrix-system または pricing-table-ui-system を使用してください。
  • 一括製品CSV注文: 特殊化された表形式管理入力パネルの場合は、data-table-ui-system を使用してください。

入力

  1. Eコマースデザイントークン: グローバルタイポグラフィスケール、ブランドカラーパレット(プライマリCTA、警告赤、成功緑)、流動的スペーシングスケール、サーフェスシャドウの高低。
  2. 製品SKUメタデータ: 画像アスペクト比ルール、タイトル制約、バリエーション文字列(例:「カラー: オニキス / サイズ: L」)、単価、セール/割引状態。
  3. フルフィルメントおよびロジック設定: 送料無料しきい値、クーポンコードルール、配送見積もり、数量制限。
  4. クロスセルカタログデータ: 現在のカートアイテムに基づいてマッピングされたレコメンデーションで、衝動買いモジュールを設定。
  5. モバイルビューポート境界: デバイス寸法、タッチターゲットガイドライン、環境セーフエリア制約。

出力

  1. スライド式ミニカートドロワー(スライドアウトサイドパネル): クイックカート概要とモバイルファースト高速パスチェックアウトのためのコンポーネントレベルグリッド設計図。
  2. 専用カートページ(フルページグリッド): 詳細なレビューのための2カラムレイアウト(メインカートリスト + 注文サマリーサイドバー)の空間設計。
  3. カート明細行アーキテクチャ: 単一明細行内のスペーシング、レイアウト、インタラクティブ数量コントロール、削除要素の詳細仕様。
  4. 送料無料およびプロモーションプログレスバー: リアルタイムフィードバックと動的メッセージしきい値を表示する空間レイアウト。
  5. A11yルーティングとスクリーンリーダー仕様: フォーカストラップ、キーボードタブ順序、ロービングタブインデックス、aria-live アナウンス、タッチターゲットルールの詳細ガイドライン。

ワークフロー

1. 空間メカニクスの定義: ミニカートドロワー vs. 専用カートページ

最適化されたデザインは、画面サイズとコンテキストに応じて、両方の影響力のあるビジュアルフォーマットをサポートする必要があります。

  • ミニカートドロワー(デスクトップ&モバイル): 右端からスライドインし、デスクトップでは画面の右400px〜460px、モバイルでは画面の100%を覆います。半透明の背景(background: rgba(0,0,0,0.5))の背後にメインビューポートをオーバーレイします。ドロワーを3つの固定領域に分割する弾力性レイアウトを使用します。
    • ヘッダー(固定高さ): カートタイトル(カウント付き)、閉じるボタン(✕)、送料無料進捗トラッカー。
    • スクロール可能な明細行(Flex grow/自動スクロール): 追加されたアイテムのリスト(overflow-y: auto;)。
    • フッター(固定高さ、ドッキング): 小計、税金/配送通知、プロモメッセージ、目立つチェックアウトCTA。
  • 専用カートページ(デスクトップ >1024px): 非対称の2カラムレイアウトグリッドを使用します。
    • 左カラム(60〜65%を占める): カート明細行のクリーンで左揃えの表形式ビュー。一括削除アクションと空の状態を含みます。
    • 右カラム(35〜40%を占める): スティッキーな注文サマリーカード(position: sticky; top: var(--header-height);)を配置。小計計算、推定配送料、クーポンコード入力、動的支払いバッジ、プライマリチェックアウトボタンを含みます。

2. カート明細行アーキテクチャの設計

カート内の各行は、ミニチュア階層を表します。CSS FlexboxまたはGridを使用して、100% 幅のコンテナ内のレイアウトフローを標準化します。

+-------------------------------------------------------------+
| [サムネイル]  [アイテムタイトル]                [削除 X]   |
| (64x64px)    サイズ: M / カラー: ブルー                      |
|                                                              |
|               [-] [ 1 ] [+]                     [価格]      |
|               (数量入力)                        $120.00      |
+-------------------------------------------------------------+
  • 製品サムネイル: コンパクトな固定アスペクト比コンテナ(64x64px から最大 96x96px)に border-radius: var(--radius-s) と object-fit: cover; を設定してアンカーします。altテキストは存在するが説明的であることを確認します(例:alt="ネイビーブルーのウールジャケット")。
  • メタデータスタック: 以下を含む標準垂直レイアウト:
    • タイトル: 太字、ニュートラルダーク、PDPにリンク。
    • バリアント属性: ミュートグレー、小さいフォントサイズ(例:12px/0.75rem)。
    • 単価: 単一アイテムの場合は控えめ、数量が1より大きい場合は強調。
  • アクセシブルな数量セレクター: ボタンは通常のテキストより大きくします。値入力をフラットなビジュアル境界線で囲みます。
    • デクリメントボタン(-)、数量入力ボックス(テキストまたは数値)、インクリメントボタン(+)。
    • 数量が1の場合、デクリメントボタンは目に見えるゴミ箱削除アイコンに変わり、クリックするとカートからアイテムが削除されることを示します。
  • ライン価格: 行の右下に揃えます。アイテムが割引されている場合は、元の取り消し線価格を薄いグレーでアクティブなセール価格(ハイコントラストの赤またはブランド太字で表示)のすぐ隣に表示します。
  • 削除ボタン: 行の右上に配置します。aria-label="[アイテム名]をカートから削除" のような明示的なラベルを使用して、スクリーンリーダーが「ボタン」や「X」とだけアナウンスするのを防ぎます。

3. 送料無料およびプロモーションプログレスエンジンの構築

フルフィルメント目標に関する即時フィードバックをユーザーに提供することで、平均注文額(AOV)を引き上げます。

  • ビジュアルプログレスバー: 丸みを帯びた端を持つ水平コンテナ(height: 8px)を使用し、薄いグレーでスタイル設定し、ユーザーの小計が目標に近づくにつれて、明るいアクセントカラー(例:緑、青)で左から右に塗りつぶします。
  • 動的マイクロコピー: バーの上または下に、明確でアクション駆動型のメッセージを記述します。
    • しきい値未満:「あと $15.00 で 送料無料 です![もっと追加する]」
    • しきい値以上:「🎉 おめでとうございます! 送料無料 を獲得しました!」
  • レイアウト位置: ミニカートドロワーとメインカートページの両方の最上部にプログレスエンジンを配置し、フォールドの上に表示されるようにします。

4. チェックアウトCTAと注文サマリーフッターの最適化

チェックアウトアンカーは、ショッピングカート体験の焦点です。確実で信頼できるブロックとして表示されるようにします。

  • 計算リスト: 小計、適用された割引(プロモコードバッジ付きの緑色テキスト、例:SUMMER20 [x])、推定配送料(または「チェックアウト時に計算」)、最終推定合計を、明確なドットリーダーまたは整列グリッドを使用したキー・バリューリストレイアウトで表示します。
  • プライマリチェックアウトボタン: ハイコントラスト、全幅(100%)、太字タイポグラフィ。クリック時に明確なローディングインジケーターを表示する必要があります(例:ラベルテキスト「安全なチェックアウト」をスピナーに変換)これにより、ダブルクリックを防ぎます。
  • サポートされる支払いバッジ: チェックアウトボタンのすぐ下に、ミュートされたグレースケールまたは標準カラーの支払いアイコンバッジ(Visa、Mastercard、Amex、PayPal、Apple Pay、Klarna)を配置して信頼を確立します。

5. レスポンシブ流動レイアウト適応の作成

ショッピングカートはモバイルで頻繁に使用されます。ブレークポイントを非常に正確に設計します。

  • ミニカートモバイルオーバーレイ: ビューポート幅が <768px の場合、ミニカートが 100vw に広がるように強制します。閉じるトリガーを、大きなタップしやすい左上または右上のターゲットに明示的に配置します。
  • カートページ明細行スタッキング: モバイルビューポートでは、水平行が折りたたまれます。
    • 製品サムネイルとタイトルが横に並びます。
    • 数量セレクターと価格はタイトルの下に折りたたまれ、数量は左揃え、価格は同じ水平軸上で右揃えになります。
  • 固定モバイルチェックアウトドロワー: モバイルカートページでは、小計とチェックアウトCTAをブラウザUI要素の上に安全に固定する固定下部フッターを実装し、padding-bottom: env(safe-area-inset-bottom); を利用します。

6. キーボードフォーカスルーティングとARIAライブトリガーの確立

アクセスしにくいカートは、スクリーンリーダーおよびキーボードのみのユーザーが購入を完了するのを妨げます。

  • ミニカートフォーカストラップ: ミニカートドロワーが開かれたとき:
    1. 最初のインタラクティブ要素(通常は閉じるボタンまたは一番上のアイテムタイトル)に即座にフォーカスをトリガーします。
    2. フォーカストラップを実装し、ユーザーが背景の背後に隠れた要素にタブ移動するのを防ぎます。
    3. Escapeキー(Esc)をトラップしてドロワーを閉じます。元々カートを開いたトリガーボタン(例:ヘッダーカートアイコン)にフォーカスをきれいに戻します。
  • 動的アナウンス(aria-live): 数量の切り替え、アイテムの削除、またはクーポンの適用は、非表示の aria-live="polite" 要素を介して即座に更新を伝達する必要があります。スクリーンリーダーは次のようにアナウンスする必要があります:「オニキスジャケットの数量が2に更新されました。小計が240ドルに更新されました。」
  • フォーカスリング: 標準のブラウザアウトラインは避け、カスタムのハイコントラストでクリップされていないフォーカスインジケーターリングをカート内のすべてのインタラクティブコントロールの周りに実装します。

決定ルール

専用カートページ vs. ミニカートドロワートリガー

トリガーイベント最適なUX応答パターンデザインの根拠
ユーザーがPDPからアイテムを追加ミニカートドロワーをスライド開くカートへの追加が成功したことを確認し、小計を瞬時に更新し、即時フィードバックを提供しますが、ユーザーをPDPに留めてショッピングを続けさせます。
ユーザーがグローバルカートヘッダーアイコンをクリックミニカートドロワーを切り替え(アイテム数 > 0の場合)/ カートページに移動(オプション)新しいページを読み込まずにアイテムリストをすばやく編集できます。カタログが非常に複雑な場合(例:数百のB2B部品)は、専用カートページに直接移動します。
カートが空(0アイテム)CTA付きのインライン空の状態を表示空白ページを表示したりドロワーを閉じたりする代わりに、明確なメッセージ(例:「カートは現在空です」)と3〜4つのターゲットを絞ったカテゴリベースのプライマリショッピングリンクを表示します。

数量入力スタイルの選択

インターフェーススタイル使用事例アプリケーションデザインの根拠
ボタンステッパー [-] [ 1 ] [+]DTC、リテール、アパレル、標準Eコマースモバイルでの最も簡単なシングルタップ操作、タイプミスを防止し、シンプルなインクリメント。
ネイティブテキスト入力フィールド大量B2Bカタログ注文シート、卸売数量ユーザーが150回クリックする代わりに、大きな任意の数値(例:150)を直接入力できます。
標準セレクトドロップダウン (数量: 1) v高額アイテム、電子機器、単一数量制限サブスクリプション購入を事前に設定された数量スケール(例:最大10)に制限し、未処理の高カウント在庫リクエストを防ぎます。

制約

  • アクセシビリティ(WCAG AA最小):
    • SC 2.4.7 フォーカスの可視性: カートドロワーは、閉じるボタン、タイトルアンカー、ステッパー、入力に非常に可視性の高いフォーカスアウトラインを維持する必要があります。
    • SC 2.5.8 ターゲットサイズ: 数量インクリメント(+)およびデクリメント(-)ボタン、削除ゴミ箱、プロモ削除リンクのタップターゲットは、デスクトップで少なくとも 24x24px、モバイルビューポートで 44x44px である必要があります。
    • SC 1.1.1 非テキストコンテンツ: すべての画像に明確な代替テキストが必要です。空の状態内の装飾的背景は無視する必要があります(role="presentation" または alt="")。
  • Cumulative Layout Shift(CLS)の防止:
    • 明細行の高さを標準化するか、ローディング状態中に最小スケルトン状態の高さを予約します。
    • 動的なプロモ計算により、チェックアウトCTAボタンが画面外に押し出されたり、突然折りたたまれたりしないようにします。
  • 動的オーバーレイスクロールロック:
    • ミニカートドロワーオーバーレイを開くと、プライマリbody要素の背景スクロールをロックする必要があります(<body> に overflow: hidden; を適用)。これにより、二重スクロールとナビゲーションアーティファクトのジャンプを防ぎます。

一般的な障害パターン

  • ゴーストカートクローズ: ドロワーを閉じるか、その外側をクリックするとフォーカスインデックスが完全にリセットされ、キーボードユーザーは基礎となるページの最上部に戻され、すべてのタブをやり直すことを余儀なくされます。
  • 謎の削除ターゲット: ゴミ箱アイコンまたは「X」削除トリガーをラベルのないテキスト記号として設計し、スクリーンリーダーに「ボタン」または「ラベルなしボタン」と出力させ、ユーザーがカートを整理できないようにします。
  • 遅延更新ドリフト: + をクリックしてからローディングスピナーを表示せずに価格を更新するまでに遅延を許容すること。ユーザーが + を3回素早くクリックすると、価格がアクションの背後にドリフトし、不正確な合計につながります。
  • ブロックされたモバイルキーボード: 専用カートページのクーポン入力を、モバイルデバイスのソフトウェアキーボードが表示されたときに完全にブロックされるか可視画面外に押し出されるレイアウトスタックの中央に配置すること。

関連リソース

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.

関連スキル