Table

表形式でデータを表示するためのコンポーネントです。
他のコンポーネントと組み合わせることが多いため、具体的な使用方法はよくあるテーブルを参照してください。

アクセシビリティ

セル内にチェックボックスやラジオボタンをそのまま配置しない

<Td><Checkbox /></Td><Th><Checkbox /></Th>、および<Td><RadioButton /></Td>などのように、セルの内部にチェックボックスやラジオボタンをそのまま配置してはいけません。それぞれの場合でTdCheckboxThCheckbox、およびTdRadioButtonという専用のコンポーネントが提供されているため、代わりにこれらを利用してください。

これらの専用のコンポーネントを利用せずにチェックボックスやラジオボタンを配置すると、アクセシブルネームが設定されず、ウェブアクセシビリティ簡易チェックリストの「フォームパーツにアクセシブルネームがある」に違反するおそれがあります。

なお、チェックボックスおよびラジオボタンのアクセシブルネームについてはeslint-plugin-smarthr別タブで開くのルールsmarthr/a11y-prohibit-checkbox-or-radio-in-table-cell別タブで開くを用いることで自動的に検証できます。

TdCheckboxおよびTdRadioButtonでは行を特定できる要素をIDで参照する

TdCheckboxおよびTdRadioButtonを利用する場合は、aria-labelledby属性を必ず指定しなければなりません。この属性には、それだけで行を一意に判別できる要素へのID参照を指定します。多くのオブジェクトでは、この属性値はしばしばオブジェクト名へのID参照になるでしょう。

オブジェクト名だけでは一意に判別できない可能性があるオブジェクトでは、オブジェクトの情報を含む複数の要素のID参照をスペース区切りで指定しなければなりません。例えば、従業員は同姓同名の人物が在籍する場合もあることから、以下のように社員番号と組み合わせます。

モバイル

モバイルでは、画面幅を越えたテーブルは2次元スクロールを招くため、垂直方向に積みあげることを推奨します。
よくあるテーブルの「モバイル」セクションを参照し、レイアウトに応じてListコンポーネント(WIP)への置き換えを検討してください。

Props

Table props

borderType
"both" "horizontal" "vertical" "all" "outer"
borderStyle
"solid" "dotted" "dashed"
rounded
false true
layout
"auto" "fixed"
fixedHead
false true

Th props

sort
"desc" "none" "asc"

並び替え状態

onSort
() => void

並び替えをクリックした時に発火するコールバック関数

fixed
"left" "right"

横スクロール時、カラムを左右いずれかに固定

decorators
{ sortDirectionIconAlt: (text: string, { sort }: { sort: sortTypes; }) => ReactNode; }

文言を変更するための関数

contentWidth
string number
align
"left" "right"
vAlign
"middle" "bottom" "baseline"

ThCheckbox props

error
false true
mixed
false true
decorators
DecoratorsType<"checkAllInvisibleLabel"> & { checkColumnName?: (text: string) => string; }
vAlign
"middle" "bottom" "baseline"
fixed
"left" "right"

Td props

align
"left" "right"
vAlign
"middle" "baseline"
nullable
false true
fixed
"left" "right"

横スクロール時、カラムを左右いずれかに固定

contentWidth
string number { base?: CellContentWidth; min?: CellContentWidth; max?: CellContentWidth; }

TdCheckbox props

aria-labelledby必須
string

値を特定するための行 id

error
false true

チェックボックスにエラーがあるかどうか

mixed
false true

true のとき、チェック状態を mixed にする

vAlign
"middle" "baseline"
fixed
"left" "right"

TdRadioButton props

aria-labelledby
string

値を特定するための行 id Identifies the element (or elements) that labels the current element. @see aria-describedby.

vAlign
"middle" "baseline"

TableReel props

ref
(instance: HTMLDivElement) => void RefObject<HTMLDivElement>

BulkActionRow props

ref
(instance: HTMLTableRowElement) => void RefObject<HTMLTableRowElement>

WakuWakuButton props

Propsは設定されていません。

EmptyTableBody props

padding
0 0.25 0.5 0.75 1 1.25 1.5 2 2.5 3 3.5 4 8 -0.25 -0.5 -0.75 -1 -1.25 -1.5 -2 -2.5 -3 -3.5 -4 -8 "X3S" "XXS" "XS" "S" "M" "L" "XL" "XXL" "X3L" { vertical?: Gap; horizontal?: Gap; }

境界とコンテンツの間の余白

ref
(instance: HTMLTableSectionElement) => void RefObject<HTMLTableSectionElement>

関連リンク