本文へスキップ

複数選択フィルタチップ

カテゴリ・価格帯・在庫のチップで商品を絞り込む。同じ群の中は OR、群をまたぐと AND。各チップに「今押したら何件か」を出し、0件は押せない色にする。

ENGLISH

Multi-Select Filter Chips

  • JS
約159行基本のUI部品 / 検索・絞り込み の一覧 →

プレビュー

クリック

操作クリック/タップで動きます。

仕様書

向く場面
  • EC の商品一覧でカテゴリ・価格帯・在庫を重ねて絞る
  • 群の中は OR・群をまたぐと AND にしたい絞り込み
  • 押す前に「何件になるか」を見せたい画面
避ける場面
  • 選択肢が10件を超える群(チップが折り返して読めない)
  • 1つしか選べない条件(ラジオ/セグメントを使う)
構成要素
  • 件数
  • すべて解除
  • 群ラベル
  • チップ(件数付き)
  • 結果リスト
持っている状態
  • 通常
  • ホバー
  • フォーカス
  • 押下中
  • 無効
  • 空
キーボード

Tab でチップと「すべて解除」を順に移動、Enter/Space で切替(再描画後も同じチップにフォーカスが残る)。0件のチップは disabled で飛ばされる

支援技術

各群は role=group+aria-label。チップは aria-pressed で選択を示す。件数は aria-live=polite。0件は disabled と数字 0 で色以外でも分かる

動き

背景・枠色 150ms(押した状態の切替)。reduced-motion で無効

デザインの要点

  • 群の中は OR・群をまたいで AND が利用者の直感。「キッチンと文具」は両方見たいが「〜¥2,000」は必ず守りたい
  • チップの件数は「他の群の条件を保ったまま自分を足したら何件か」で計算する。押した後の後悔を先回りで消す
  • 「すべて解除」は条件が1つでもあるときだけ出す。何もしていない画面にリセットは要らない

プロのサイトでの実例

実例は「型の使われ方」の観察であり、コード・ロゴの転載ではありません。サイト側の更新で見え方が変わることがあります。

コード(コピーして使えます)

<div class="fcm">
  <div class="fcm-head">
    <p class="fcm-count" id="fcm-count" aria-live="polite"></p>
    <button id="fcm-reset" class="fcm-reset" type="button" hidden>すべて解除</button>
  </div>
  <div class="fcm-group" role="group" aria-label="カテゴリ">
    <span class="fcm-glabel">カテゴリ</span>
    <div class="fcm-chips" id="fcm-cat"></div>
  </div>
  <div class="fcm-group" role="group" aria-label="価格帯">
    <span class="fcm-glabel">価格帯</span>
    <div class="fcm-chips" id="fcm-price"></div>
  </div>
  <div class="fcm-group" role="group" aria-label="在庫">
    <span class="fcm-glabel">在庫</span>
    <div class="fcm-chips" id="fcm-stock"></div>
  </div>
  <ul class="fcm-list" id="fcm-list" aria-label="商品"></ul>
</div>

タグ

同じカテゴリ「検索・絞り込み」のほかのパーツ

関連パーツ