本文へスキップ

検索演算子のヒント

メール検索で from: is: before: を打ち始めると演算子のヒントが出て、確定するとチップ(トークン)になる。トークンと本文の語を組み合わせて一覧が絞られる。Gmail 型。

ENGLISH

Search Operator Tokens

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

プレビュー

入力

操作実際に入力して試せます。

仕様書

向く場面
  • メール・Issue など from: is: で絞る高度な検索
  • 演算子を覚えさせずに打ち始めで教えたい欄
  • 確定した条件をチップに切り離したい入力
避ける場面
  • 一般消費者向けの単純なキーワード検索
  • 演算子が2つ未満(通常のフィルタで足りる)
構成要素
  • 検索入力欄
  • 条件チップ(×付き)
  • 演算子ヒント
  • 使い方の補助文
  • 件数
  • 結果リスト
持っている状態
  • 通常
  • ホバー
  • フォーカス
  • 押下中
  • 空
キーボード

演算子を打つとヒント。↑↓ で候補移動、Enter で適用、Esc で閉じる(Tab は閉じて次の要素へ)。Space/Enter で確定しチップ化、空欄で Backspace で最後のチップを外す

支援技術

入力は role=combobox・aria-autocomplete=list・aria-expanded・aria-controls・aria-activedescendant・aria-describedby。ヒントは listbox/option。× は aria-label。件数は live

動き

なし

デザインの要点

  • 演算子は覚えてもらうものではなく、打ち始めたら教えるもの。「fr」で from: が出れば、初回から使える
  • 確定した条件はチップにして入力欄から切り離す。文字列のままだと、どこまでが条件かを目で解析させることになる
  • is: のように値が決まっている演算子は、コロンの後で値の候補を出す。自由入力を許すのは from: のような開いた値だけ

プロのサイトでの実例

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

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

<div class="soh">
  <div class="soh-field">
    <div class="soh-box" id="soh-box">
      <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>
      <div class="soh-tokens" id="soh-tokens"></div>
      <input id="soh-q" class="soh-input" type="text" placeholder="メールを検索(from: is: before: が使えます)" autocomplete="off" role="combobox" aria-autocomplete="list" aria-controls="soh-hints" aria-expanded="false" aria-describedby="soh-help">
    </div>
    <ul id="soh-hints" class="soh-hints" role="listbox" aria-label="演算子の候補" hidden></ul>
  </div>
  <p id="soh-help" class="soh-help">空白か Enter で確定してチップにします。Backspace で最後のチップを外せます</p>
  <p class="soh-count" id="soh-count" aria-live="polite"></p>
  <ul class="soh-list" id="soh-list" aria-label="メール"></ul>
</div>

タグ

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

関連パーツ