sashigane
コンポーネント

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

通常。数字の列は右に寄り、桁の幅が揃う。

距離帯最速ペース本数
5km4:52128
10km5:0441
ハーフ5:317

空empty.tsx

空。行が無くても見出しは残る。

距離帯本数
まだ記録がありません

エッジケースedge.tsx

エッジケース。列が多くて横に溢れるとき。

回距離タイムペース心拍高度気温日付本数
1 回目1234.51234.51234.51234.51234.51234.51234.51234.5
2 回目1234.51234.51234.51234.51234.51234.51234.51234.5

props

Prop

Type

型と説明はコンポーネントのソースから抽出しています。既定値は出していません——cva の defaultVariants は 署名に現れないので、表に出すと「引数のデフォルトが書かれているものだけ」になり、嘘になります。

On this page