Pagination

コンテンツを複数ページに分割して表示するナビゲーションコンポーネントです。一覧表示やテーブルのページ切り替えに使用します。

Basic

jui-pagination の最も基本的な使用例です。

関連コンポーネント

  • Table — テーブルと組み合わせてページ切り替えに使用
  • Button — カスタムページネーションボタンとして使用

ブラウザ対応

このコンポーネントが使用しているブラウザ機能と対応状況です。

機能用途ChromeFirefoxSafariステータス
: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-visible2022年2024年後半 ✅
Flexbox gap2021年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)の一覧と詳細仕様です。

PropertyAttributeDescriptionTypeDefault
currentcurrent現在のページnumber1
navLabelnav-labelナビゲーションのラベル(i18n対応)string'Pagination'
nextLabelnext-label次へボタンのラベル(i18n対応)string'Next'
pageLabelpage-labelページボタンのラベルプレフィックス(i18n対応)string'Page'
perPageper-page1ページあたりの表示数number10
prevLabelprev-label前へボタンのラベル(i18n対応)string'Previous'
siblingCountsibling-count現在ページの前後に表示するページ数number1
totaltotal総アイテム数number0

イベント

コンポーネントから発火するカスタムイベントの一覧です。

EventDescriptionType
juiPageChangeページ変更時に発火CustomEvent<{ page: number; }>

シャドウパーツ

CSSから直接スタイリング可能な内部要素(Parts)の一覧です。

PartDescription
"button"ページ番号ボタン
"button-active"アクティブページボタン
"button-next"次へボタン
"button-prev"前へボタン
"ellipsis"省略記号(…)
"nav"ルートの nav 要素

Built with StencilJS