Table
データを行と列の形式で整理して表示するコンポーネント。ユーザー一覧や商品リストの表示に使用します。
Basic
jui-table の最も基本的な使用例です。
関連コンポーネント
- Pagination - ページネーション
- Skeleton - ローディング表示
- Card - コンテンツのカード表示
ブラウザ対応
このコンポーネントが使用しているブラウザ機能と対応状況です。
| 機能 | 用途 | Chrome | Firefox | Safari | ステータス |
|---|---|---|---|---|---|
position: sticky | テーブルヘッダーの固定表示(オプション時) | 56+ | 32+ | 6.1+ | Baseline 2017 |
| Flexbox | ソート用ボタン・アイコンの整列配置 | 29+ | 22+ | 9+ | Baseline 2017 |
CSS 変数 (var()) | デザイントークン(枠線、背景、文字間隔、トランジション等)適用 | 49+ | 31+ | 9.1+ | Baseline 2017 |
💡 いずれの機能も主要ブラウザで広く対応済みです。
Baseline 情報
| 機能 | Baseline 達成 | Widely Available 予定 |
|---|---|---|
position: sticky | 2017年 | 2020年前半 ✅ |
| Flexbox | 2017年 | 2020年前半 ✅ |
| CSS 変数 | 2017年 | 2020年前半 ✅ |
アクセシビリティ
- WAI-ARIA:
table、thead、tbody、tr、th、tdの標準的なテーブル構造セマンティクスに準拠しています。captionスロットを提供しており、テーブルの用途や要約を説明するキャプションをスクリーンリーダー向けに設定できます。
- キーボードナビゲーション:
- ソートが可能な列ヘッダー(
columnsで定義されたsortable: trueの列)には内部的にフォーカス可能な<button>要素が生成され、Tabキーでフォーカスし、EnterまたはSpaceキーでソート処理を確定できます。 - データ行自体は通常は対話型ではないため、キーボード操作の対象外となります。
- ソートが可能な列ヘッダー(
CSS カスタムプロパティ
このコンポーネント固有のカスタムプロパティはありません。グローバルのデザイントークンを参照してスタイルが適用されます。
プロパティ
コンポーネントが受け付ける属性(Props)の一覧と詳細仕様です。
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
columns | columns | 列定義(JSON文字列 or 配列) | TableColumn[] | string | '[]' |
data | data | 行データ(JSON文字列 or 配列) | object[] | string | '[]' |
hoverable | hoverable | 行ホバー効果 | boolean | false |
size | size | セルのサイズ | "md" | "sm" | 'md' |
striped | striped | 交互行の背景色 | boolean | false |
イベント
コンポーネントから発火するカスタムイベントの一覧です。
| Event | Description | Type |
|---|---|---|
juiSort | ソート変更時に発火 | CustomEvent<{ column: string; direction: "desc" | "asc"; }> |
スロット
コンポーネント内に子要素を挿入するためのスロット一覧です。
| Slot | Description |
|---|---|
"caption" | テーブルのキャプション(アクセシビリティ用) |
シャドウパーツ
CSSから直接スタイリング可能な内部要素(Parts)の一覧です。
| Part | Description |
|---|---|
"cell" | データセル |
"header-cell" | ヘッダーセル |
"row" | 各行 |
"table" | ルートの table 要素 |
"tbody" | テーブルボディ |
"thead" | テーブルヘッダー |
Built with StencilJS