コンテンツにスキップ

フィルタバー

hc-filterbarいま一覧が何で絞り込まれているかを示し、その場で 変更させます。各チップは自分の条件のエディタを開き、隣のコントロールは その条件を外します。

hc-chip の対話版に当たる 兄弟で、hc-chip の方は装飾用のままです。分けているのは意図的で、 どのピルがレコードについての事実で、どれがクエリを操作するコント ロールなのかを一目で区別できるようにするためです。

別名: 適用中フィルター表示、絞り込み条件バー。

  • ×
  • ×
  • ×
Clear all

The editor for this one condition.

The editor for this one condition.

The editor for this one condition.

パーツ用途
.hc-filterbar行のラッパー。条件が 0 件のとき畳まれます。
.hc-filterbar__listスクロールする <ul> — 「リスト、N 項目」と読み上げられます。
.hc-filterbar__item1 条件。チップと、必要なら削除コントロール。
.hc-filterbar__chipその条件のエディタを開く <button>
.hc-filterbar__label項目名。
.hc-filterbar__op演算子。意図的に控えめ。
.hc-filterbar__value値。--hc-filterbar-value-max を超えると省略されます。
.hc-filterbar__removeこの条件を除いた同じ URL へのリンク。
.hc-filterbar__clear絞り込みなしの URL へのリンク。末尾側に固定されます。

条件は横に積み上がります。折り返すバーはデータを下へ押しやり、条件を 足すたび外すたびに再配置するので、読んでいる最中に一覧が動きます。 ここではチップは縮まず、代わりにバーがスクロールします。そして 「すべて解除」は固定です。解除したい対象の末尾まで先にスクロール しないと解除できない、というのはおかしいからです。

表示テキストはサーバーのもの

Section titled “表示テキストはサーバーのもの”

項目のラベル、使われた演算子、条件が値をいくつ持つか — 知っているのは サーバーだけです。したがってチップの 3 パーツはサーバーが描画し、 複数値の条件は要約として届きます。

<span class="hc-filterbar__value">3 values</span>

チップを 3 つ並べることも、貼り付けられた 200 件のコードをチップに 詰め込むこともしません。全件はチップが開くエディタの中にあります。

__remove__clear はボタンではなく <a href> です。条件を外す ことは別の URL なので、JavaScript なしでも動き、共有でき、戻るで 条件が戻ります。data-hx-get を足せばその場で結果を差し替えられます — href は no-JS 経路として残ります。

画面が強制している条件(たとえば「担当者は自分」)は、削除コントロール を描画しなければよく、チップは両端が丸いままになります。

  • バーは実際のリストなので、件数が読み上げられます。
  • 削除コントロールは必ず条件を名指しします(「Remove Buyer code filter」)。素の × にはしません。
  • 各チップは <button popovertarget> なので、キーボードでエディタが 開き、Escape で閉じます — ブラウザ標準のポップオーバー挙動です。
  • 省略は見た目だけで、エディタには全文が入っています。
トークンパス用途
filterbar.bg / -fg / -borderチップの面。
filterbar.hover-bgチップと削除のホバー。
filterbar.op-fg控えめな部分 — 演算子、削除、すべて解除。
filterbar.radius / -padding-x / -padding-y / -gap形と間隔。
filterbar.font-sizeチップの文字サイズ。
filterbar.value-max長い値を省略する位置。
生成される CSS 変数を表示
--hc-filterbar-bg | -fg | -border | -hover-bg | -op-fg
--hc-filterbar-radius | -padding-x | -padding-y | -gap
--hc-filterbar-font-size | -value-max

レシピでの利用: データグリッドの列フィルタ