Foundation
PackagesUIComponentsTables

Table

データを行と列で表示するテーブルコンポーネント。請求書一覧、ユーザーリスト等の構造化データの表示に使用する。

いつ使うか

  • 構造化されたデータを行と列で表示するときに使用する
  • ヘッダー、フッター、キャプションを含む静的なテーブルレイアウトに使用する

いつ使わないか

  • ソート・フィルタ・ページネーション等のインタラクティブなデータ操作が必要な場合は DataTable を使用する
  • キーバリューペアの表示には、定義リスト (dl) の使用を検討する

Usage

import {
  Table,
  TableBody,
  TableCell,
  TableHead,
  TableHeader,
  TableRow,
} from '@bi-shop-it/ui/table';

<Table>
  <TableHeader>
    <TableRow>
      <TableHead>名前</TableHead>
      <TableHead>メールアドレス</TableHead>
    </TableRow>
  </TableHeader>
  <TableBody>
    <TableRow>
      <TableCell>田中 太郎</TableCell>
      <TableCell>[email protected]</TableCell>
    </TableRow>
  </TableBody>
</Table>;

Props

すべてのコンポーネントは children: ReactNode を受け取る。

TableHead / TableCell

Propデフォルト説明
align'left' | 'center' | 'right''left'テキスト揃え
colSpannumber結合する列数
rowSpannumber結合する行数

その他のコンポーネント

コンポーネントHTML 要素説明
Table<table>テーブルのルート。スクロール対応
TableHeader<thead>ヘッダー行のグループ
TableBody<tbody>データ行のグループ
TableFooter<tfoot>フッター行のグループ
TableRow<tr>テーブル行
TableCaption<caption>テーブルのキャプション

状態

デフォルト

キャプション、ヘッダー、フッターを含む完全なテーブル。

最近の請求書一覧
請求書番号ステータス支払方法金額
INV-001支払済銀行振込¥250,000
INV-002未払いクレジットカード¥150,000
INV-003支払済銀行振込¥350,000
INV-004支払済口座振替¥450,000
INV-005未払いクレジットカード¥550,000
合計¥1,750,000
<Table>
  <TableCaption>最近の請求書一覧</TableCaption>
  <TableHeader>
    <TableRow>
      <TableHead>請求書番号</TableHead>
      <TableHead>ステータス</TableHead>
      <TableHead>支払方法</TableHead>
      <TableHead align="right">金額</TableHead>
    </TableRow>
  </TableHeader>
  <TableBody>
    <TableRow>
      <TableCell>INV-001</TableCell>
      <TableCell>支払済</TableCell>
      <TableCell>銀行振込</TableCell>
      <TableCell align="right">¥250,000</TableCell>
    </TableRow>
  </TableBody>
  <TableFooter>
    <TableRow>
      <TableCell colSpan={3}>合計</TableCell>
      <TableCell align="right">¥1,750,000</TableCell>
    </TableRow>
  </TableFooter>
</Table>

シンプル

ヘッダーとデータ行のみのシンプルなテーブル。

名前メールアドレス役割
田中 太郎[email protected]管理者
佐藤 花子[email protected]編集者
鈴木 一郎[email protected]閲覧者
<Table>
  <TableHeader>
    <TableRow>
      <TableHead>名前</TableHead>
      <TableHead>メールアドレス</TableHead>
      <TableHead>役割</TableHead>
    </TableRow>
  </TableHeader>
  <TableBody>
    <TableRow>
      <TableCell>田中 太郎</TableCell>
      <TableCell>[email protected]</TableCell>
      <TableCell>管理者</TableCell>
    </TableRow>
  </TableBody>
</Table>

アクセシビリティ

コンポーネントが内部で処理すること

  • セマンティックな HTML テーブル要素(table, thead, tbody, th, td)を使用する
  • data-slot 属性でコンポーネントの役割を識別可能にする

利用者が対応すること

  • テーブルの目的を説明する TableCaption を設定すること

関連コンポーネント

  • DataTable — TanStack Table と組み合わせたインタラクティブなデータテーブルに使用する
  • Card — テーブルをカードでラップして視覚的にグループ化する場合に使用する

On this page