コンポーネント
Table
テーブル。横にはみ出しても読める
横にはみ出しても、スクロールするのは表だけです
列が増えると、表は必ず横にはみ出します。 そのとき横スクロールする枠が要りますが、
Table がその枠を持っています。 利用側は書きません。
利用側に書かせると、書き忘れたときにページ全体が横にスクロールします。
thead と tbody は素のまま書きます
どちらにも当てるものがありません。中身の無いコンポーネントは置いていません。
<Table>
<thead>
<TableRow>
<TableHeaderCell>距離帯</TableHeaderCell>
<TableHeaderCell numeric>本数</TableHeaderCell>
</TableRow>
</thead>
<tbody>
<TableRow>
<TableCell>5km</TableCell>
<TableCell numeric>128</TableCell>
</TableRow>
</tbody>
</Table>数字の列は numeric を付けます
右に寄り、桁の幅が揃います。 揃えないと、上下の行で桁の位置がずれて 読み比べられません。
見出しの項目にも付けてください。中身と見出しが別の側に寄ると読みにくくなります。
見出しは申告されます
TableHeaderCell は既定で列の見出しとして申告します。
行の見出しにするときは scope="row" を渡してください。
申告しないと、読み上げがどの項目がどの見出しに属するかを言えません。
表そのものは素の table です
役割を付け替えていません。素の table が既に表として読まれます。
3つの状態
通常・空・エッジケースの3つは、どのコンポーネントにも必ずあります。
通常default.tsx
通常。数字の列は右に寄り、桁の幅が揃う。
| 距離帯 | 最速ペース | 本数 |
|---|---|---|
| 5km | 4:52 | 128 |
| 10km | 5:04 | 41 |
| ハーフ | 5:31 | 7 |
空empty.tsx
空。行が無くても見出しは残る。
| 距離帯 | 本数 |
|---|---|
| まだ記録がありません | |
エッジケースedge.tsx
エッジケース。列が多くて横に溢れるとき。
| 回 | 距離 | タイム | ペース | 心拍 | 高度 | 気温 | 日付 | 本数 |
|---|---|---|---|---|---|---|---|---|
| 1 回目 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 |
| 2 回目 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 | 1234.5 |
props
Prop
Type
型と説明はコンポーネントのソースから抽出しています。既定値は出していません——cva の defaultVariants は 署名に現れないので、表に出すと「引数のデフォルトが書かれているものだけ」になり、嘘になります。