Pagination
コンテンツを複数ページに分割して表示するナビゲーションコンポーネントです。一覧表示やテーブルのページ切り替えに使用します。
Basic
jui-pagination の最も基本的な使用例です。
関連コンポーネント
ブラウザ対応
このコンポーネントが使用しているブラウザ機能と対応状況です。
| 機能 | 用途 | Chrome | Firefox | Safari | ステータス |
|---|---|---|---|---|---|
:focus-visible | フォーカス制御 | 86+ | 85+ | 15.4+ | Baseline 2022 |
Flexbox gap | ボタン間のスペーシング | 84+ | 63+ | 14.1+ | Baseline 2021 |
CSS 変数 (var()) | デザイントークン適用 | 49+ | 31+ | 9.1+ | Baseline 2017 |
💡 いずれの機能も主要ブラウザで広く対応済みです。
Baseline 情報
| 機能 | Baseline 達成 | Widely Available 予定 |
|---|---|---|
:focus-visible | 2022年 | 2024年後半 ✅ |
Flexbox gap | 2021年 | 2023年半ば ✅ |
| CSS 変数 | 2017年 | 2020年前半 ✅ |
アクセシビリティ
- WAI-ARIA:
- ルート要素に
role="navigation"およびaria-label="ページネーション"(またはnav-labelプロパティでカスタマイズされた文字列)を付与しています。 - 現在アクティブなページ番号ボタンには
aria-current="page"が付加されます。 - 各ボタンにはアクセシブルな名前(
page-labelなどに基づく “ページ N” 等)が設定されます。
- ルート要素に
- キーボードナビゲーション:
- 各ボタンはフォーカス可能であり、
Tabでフォーカスを移動し、EnterまたはSpaceキーでページ遷移を実行できます。 - 無効化状態の「前へ」「次へ」ボタンはフォーカス対象外(
tabindex="-1")となります。
- 各ボタンはフォーカス可能であり、
CSS カスタムプロパティ
このコンポーネント固有のカスタムプロパティはありません。グローバルのデザイントークンを参照してスタイルが適用されます。
プロパティ
コンポーネントが受け付ける属性(Props)の一覧と詳細仕様です。
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
current | current | 現在のページ | number | 1 |
navLabel | nav-label | ナビゲーションのラベル(i18n対応) | string | 'Pagination' |
nextLabel | next-label | 次へボタンのラベル(i18n対応) | string | 'Next' |
pageLabel | page-label | ページボタンのラベルプレフィックス(i18n対応) | string | 'Page' |
perPage | per-page | 1ページあたりの表示数 | number | 10 |
prevLabel | prev-label | 前へボタンのラベル(i18n対応) | string | 'Previous' |
siblingCount | sibling-count | 現在ページの前後に表示するページ数 | number | 1 |
total | total | 総アイテム数 | number | 0 |
イベント
コンポーネントから発火するカスタムイベントの一覧です。
| Event | Description | Type |
|---|---|---|
juiPageChange | ページ変更時に発火 | CustomEvent<{ page: number; }> |
シャドウパーツ
CSSから直接スタイリング可能な内部要素(Parts)の一覧です。
| Part | Description |
|---|---|
"button" | ページ番号ボタン |
"button-active" | アクティブページボタン |
"button-next" | 次へボタン |
"button-prev" | 前へボタン |
"ellipsis" | 省略記号(…) |
"nav" | ルートの nav 要素 |
Built with StencilJS