Q
v0.3

Table

Newv0.3.0

データを行と列で表示するテーブルコンポーネント。構造化されたデータの表示に使用します。

基本的な使い方

請求書一覧のテーブル例

A list of your recent invoices.
Invoice
Status
Method
Amount
INV001PaidCredit Card$250.00
INV002PendingPayPal$150.00
INV003UnpaidBank Transfer$350.00
INV004PaidCredit Card$450.00
INV005PaidPayPal$550.00
tsx
class="token keyword">import {
  Table,
  TableHeader,
  TableBody,
  TableRow,
  TableHead,
  TableCell,
  TableCaption,
} class="token keyword">from class="token keyword">class="token string">"@/components/ui";

<class="token tag">Table>
  <class="token tag">TableCaption>請求書一覧</class="token tag">TableCaption>
  <class="token tag">TableHeader>
    <class="token tag">TableRow>
      <class="token tag">TableHead>Invoice</class="token tag">TableHead>
      <class="token tag">TableHead>Status</class="token tag">TableHead>
      <class="token tag">TableHead align=class="token keyword">class="token string">"right">Amount</class="token tag">TableHead>
    </class="token tag">TableRow>
  </class="token tag">TableHeader>
  <class="token tag">TableBody>
    {invoices.class="token function">map((invoice) => (
      <class="token tag">TableRow key={invoice.id}>
        <class="token tag">TableCell>{invoice.id}</class="token tag">TableCell>
        <class="token tag">TableCell>{invoice.status}</class="token tag">TableCell>
        <class="token tag">TableCell align=class="token keyword">class="token string">"right">{invoice.amount}</class="token tag">TableCell>
      </class="token tag">TableRow>
    ))}
  </class="token tag">TableBody>
</class="token tag">Table>

ストライプ

行の背景色を交互に変更して視認性を向上

Name
Email
Role
John Doejohn@example.comAdmin
Jane Smithjane@example.comEditor
Bob Johnsonbob@example.comViewer
Alice Brownalice@example.comEditor
tsx
<class="token tag">Table striped>
  <class="token tag">TableHeader>
    <class="token tag">TableRow>
      <class="token tag">TableHead>Name</class="token tag">TableHead>
      <class="token tag">TableHead>Email</class="token tag">TableHead>
      <class="token tag">TableHead>Role</class="token tag">TableHead>
    </class="token tag">TableRow>
  </class="token tag">TableHeader>
  <class="token tag">TableBody>
    <class="token tag">TableRow>
      <class="token tag">TableCell>John Doe</class="token tag">TableCell>
      <class="token tag">TableCell>john@example.com</class="token tag">TableCell>
      <class="token tag">TableCell>Admin</class="token tag">TableCell>
    </class="token tag">TableRow>
    {class="token keyword">class=class="token keyword">class="token string">"token comment">/* ... */}
  </class="token tag">TableBody>
</class="token tag">Table>

コンパクト + ボーダー

データ密度の高い表示

ID
Product
Price
Qty
001Widget A$10.005
002Widget B$15.003
003Widget C$20.008
tsx
<class="token tag">Table compact bordered>
  <class="token tag">TableHeader>
    <class="token tag">TableRow>
      <class="token tag">TableHead>ID</class="token tag">TableHead>
      <class="token tag">TableHead>Product</class="token tag">TableHead>
      <class="token tag">TableHead align=class="token keyword">class="token string">"right">Price</class="token tag">TableHead>
      <class="token tag">TableHead align=class="token keyword">class="token string">"right">Qty</class="token tag">TableHead>
    </class="token tag">TableRow>
  </class="token tag">TableHeader>
  <class="token tag">TableBody>
    <class="token tag">TableRow>
      <class="token tag">TableCell>class="token number">001</class="token tag">TableCell>
      <class="token tag">TableCell>Widget A</class="token tag">TableCell>
      <class="token tag">TableCell align=class="token keyword">class="token string">"right">$class="token number">10.00</class="token tag">TableCell>
      <class="token tag">TableCell align=class="token keyword">class="token string">"right">class="token number">5</class="token tag">TableCell>
    </class="token tag">TableRow>
  </class="token tag">TableBody>
</class="token tag">Table>

Props API

PropTypeDefaultDescription
stripedbooleanfalse行の背景色を交互に変更
compactbooleanfalseコンパクトなパディング
borderedbooleanfalseセル間にボーダーを追加

Accessibility

  • 適切な table, thead, tbody, tr, th, td 要素を使用
  • scope 属性でヘッダーとデータセルを関連付け
  • TableCaption でテーブルの説明を提供
  • align 属性で数値データは右揃えに