List

アイテム一覧を表示するリストコンポーネント。アイコン・説明・アクション付き。

プレビュー

基本リスト(区切り線あり)

  • お気に入り機能よく使うアイテムをブックマークできます新着
  • 設定アプリケーションの設定を変更
  • チームメンバーメンバーの管理と招待5人

インタラクティブ

  • クリック可能なアイテム
  • ホバーで背景が変わります

箇条書き

  • シンプルなテキストリスト
  • マーカー付きの箇条書き
  • ドキュメントや説明文に最適

番号付き

  1. アカウントを作成する
  2. プロフィールを設定する
  3. チームメンバーを招待する

使いどころ

使う場面

  • 同じ種類の項目を縦に並べる(メンバー、通知、設定項目、ファイルなど)。各行にアイコンやアバター(leading)、状態や操作(trailing)、補足(description)を付けられる
  • 順番に意味があるときは marker="decimal" で <ol> にする。手順や順位が該当する
  • 行全体を押せるようにするときは interactive を付け、遷移なら asChild で <a> を包む

使わない場面

  • ラベルと値の組(氏名: 相楽 実咲、プラン: Pro など)。DescriptionList を使う
  • 列ごとに比較・並べ替えるデータ。Table を使う
  • 出来事を時系列で追う履歴。Timeline を使う
  • 行ごとに別々の操作を持つメニュー。Dropdown を使う

使い方

{/* アイコン付きリスト */}
<List divided>
  <ListItem
    leading={<Star size={16} />}
    title="お気に入り機能"
    description="よく使うアイテムをブックマーク"
    trailing="新着"
  />
  <ListItem
    leading={<Settings size={16} />}
    title="設定"
    description="アプリの設定を変更"
  />
</List>

{/* 箇条書き */}
<List marker="disc">
  <ListItem title="シンプルなテキスト" />
  <ListItem title="マーカー付き箇条書き" />
</List>

{/* 番号付き */}
<List marker="decimal">
  <ListItem title="手順1" />
  <ListItem title="手順2" />
</List>

プロパティ

名前型デフォルト説明
dividedbooleanfalseアイテム間に区切り線を表示(List)
marker"disc" | "decimal" | "none"なしリストマーカーのスタイル(List)
children必須ReactNodeなしListItem の並び
leadingReact.ReactNodeなし左側のアイコンなど(ListItem)
titleReact.ReactNodeなしアイテムのタイトル(ListItem)
descriptionReact.ReactNodeなしタイトル下の説明文(ListItem)
trailingReact.ReactNodeなし右側の補足テキストやアイコン(ListItem)
interactivebooleanfalseホバーエフェクトを有効化(ListItem)

型と必須かどうかはソースの型定義から自動で生成しています。表にない HTML 標準の属性(className や aria-* など)も、ルート要素にそのまま渡せます。

キーボード操作

キー動作
Tabinteractive の行がリンクなら、行ごとにフォーカスを移す
Enterフォーカスしたリンクを開く

アクセシビリティ

  • marker が decimal のとき <ol>、それ以外は <ul> で出力され、項目数が読み上げられる
  • interactive だけでは行は押せない。クリックの処理を付けるなら <button> を中に置くか、asChild で <a> にする。<li> に onClick だけ付けてもキーボードで操作できない
  • asChild のときは <li> の中に <a> が入る。リンクの名前は title と description をまとめて読まれるので、title は単独で意味が通る言葉にする

文言

  • title は項目名を短く、description は title にない補足を書く。同じ内容を繰り返さない
  • trailing に置くバッジや日付は、短く揃える。行ごとに長さがばらつくと崩れる

関連するコンポーネント