本文へスキップ

リストビュー

アバター+主・副テキスト+右端メタ/シェブロンで構成する定番のデータ一覧。行をタップすると選択状態になり、区切り線とホバーで視認性を保ちます。

プレビュー

クリック

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

仕様書

向く場面
  • メンバー・会話・ファイルなどの一覧
  • 行を選んで詳細を右や下に出す 2 ペイン構成
  • アバター+主副テキスト+メタが定番の一覧
避ける場面
  • 列の比較が要るデータ(テーブルが向く)
  • 複数選択が主目的の一覧
構成要素
  • アバター
  • 主テキスト
  • 副テキスト
  • メタ
  • シェブロン
  • 選択バー
持っている状態
  • 通常
  • ホバー
  • フォーカス
  • 押下中
キーボード

Tab で各行(button)へ、Enter/Space で選択・解除。↑↓ で前後の行へ、Home/End で先頭・末尾へ移動

支援技術

ul は素のリスト+aria-label(listbox に button を入れ子にしない)。行 button は aria-pressed で選択を伝え focus-visible あり。選択は左の藍バーと背景で示す。reduced-motion で遷移停止

動き

行の背景 150ms

デザインの要点

  • 行の高さは 44px 以上を確保し、行全体を 1 つの button にする。文字だけ押せる一覧は指で外す
  • 主テキスト 13px・副 11px・メタ 11px の 3 段で強弱を付ける。全部同じ太さだと走査できない
  • 選択は左端 3px の藍バー+薄い背景の 2 つで示す。背景だけだとホバーと区別が付かない
  • listbox+option の中に button を入れ子にしない。素のリストにして button の aria-pressed で選択を伝える

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

<div class="lv-wrap">
  <ul class="lv-list" aria-label="メンバー一覧">
    <li>
      <button class="lv-row" type="button" aria-pressed="false">
        <span class="lv-avatar" style="--g:linear-gradient(135deg,#2b50c7,#7fa4ff)" aria-hidden="true">佐</span>
        <span class="lv-body">
          <span class="lv-primary">佐藤 花子</span>
          <span class="lv-secondary">プロダクトデザイナー</span>
        </span>
        <span class="lv-meta">3分前</span>
        <svg class="lv-chevron" width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
          <polyline points="5,3 9,7 5,11" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
        </svg>
      </button>
    </li>
    <li>
      <button class="lv-row" type="button" aria-pressed="false">
        <span class="lv-avatar" style="--g:linear-gradient(135deg,#2a7a45,#7fc79a)" aria-hidden="true">鈴</span>
        <span class="lv-body">
          <span class="lv-primary">鈴木 一郎</span>
          <span class="lv-secondary">フロントエンド開発</span>
        </span>
        <span class="lv-meta">1時間前</span>
        <svg class="lv-chevron" width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
          <polyline points="5,3 9,7 5,11" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
        </svg>
      </button>
    </li>
    <li>
      <button class="lv-row" type="button" aria-pressed="false">
        <span class="lv-avatar" style="--g:linear-gradient(135deg,#b8860b,#e0b64a)" aria-hidden="true">田</span>
        <span class="lv-body">
          <span class="lv-primary">田中 美咲</span>
          <span class="lv-secondary">カスタマーサクセス</span>
        </span>
        <span class="lv-meta">昨日</span>
        <svg class="lv-chevron" width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
          <polyline points="5,3 9,7 5,11" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
        </svg>
      </button>
    </li>
    <li>
      <button class="lv-row" type="button" aria-pressed="false">
        <span class="lv-avatar" style="--g:linear-gradient(135deg,#6b5bd0,#b3a3f0)" aria-hidden="true">高</span>
        <span class="lv-body">
          <span class="lv-primary">高橋 健</span>
          <span class="lv-secondary">マーケティング</span>
        </span>
        <span class="lv-meta">3日前</span>
        <svg class="lv-chevron" width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
          <polyline points="5,3 9,7 5,11" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
        </svg>
      </button>
    </li>
  </ul>
</div>

タグ

同じカテゴリ「データ可視化・ダッシュボード」のほかのパーツ

関連パーツ