Pagination
Paginationは、大量のデータやコンテンツをページ単位で分割し、ユーザーが任意のページに移動できるナビゲーションコンポーネントです。 表示するページ数の幅や端の範囲を細かく設定でき、省略記号(…)を含むページ範囲を自動で計算します。
3
Variants
5
Sizes
4
Navigation
Pure
React
Playground
Preview
DdefaultPage 1/20
Variant
Color
Size
Radius
Pages
Options
const [page, setPage] = useState(1)
<Pagination total={20} value={page} onChange={setPage}>
<PaginationContent>
<PaginationItem>
<PaginationPrevious />
</PaginationItem>
<PaginationItems />
<PaginationItem>
<PaginationNext />
</PaginationItem>
</PaginationContent>
</Pagination>Variants
Default
アクティブページにソリッド背景で塗りつぶし。最も一般的なスタイル。
標準UI
Outline
ボーダー付き。アクティブはソリッド背景で塗りつぶし。
フォーム・リスト
Ghost
アクティブは控えめなハイライト。最小限の視覚的存在感。
補助UI
Sizes
xs高さ28px
フォント12px
アイコン14px
sm高さ32px
フォント13px
アイコン14px
default高さ36px
フォント14px
アイコン16px
lg高さ40px
フォント14px
アイコン16px
xl高さ48px
フォント16px
アイコン16px
| Size | 高さ | フォント | アイコン | プレビュー |
|---|---|---|---|---|
xs | 28px | 12px | 14px | |
sm | 32px | 13px | 14px | |
default | 36px | 14px | 16px | |
lg | 40px | 14px | 16px | |
xl | 48px | 16px | 16px |
Features
Edge Navigation (withEdges)
先頭・末尾へのジャンプボタンを表示。大量ページで素早く移動。
Loop Navigation (loop)
最後→最初、最初→最後の循環ナビゲーション。
Disabled State
全操作を無効化。データ読み込み中などに使用。
Custom Icons
icon propで内蔵アイコンを任意のReactNodeに差し替え。
API
Component Structure
Pagination— Pure React.Content.Item.LinkProps.PreviousProps.NextProps.FirstProps.LastProps.Ellipsis.Items
.Contentページリストコンテナ.Itemページアイテムラッパー.LinkPropsページ番号ボタン(page prop).PreviousProps前へボタン.NextProps次へボタン.FirstProps最初へボタン.LastProps最後へボタン.Ellipsis省略記号.Items自動ページネーションProps
Pagination
total1number総ページ数
valueundefinednumber現在のページ(制御モード)
defaultValue1number初期ページ(非制御モード)
onChangeundefined(page: number) => voidページ変更時のコールバック
siblings1number現在ページの両側に表示するページ数
boundaries1number先頭・末尾に常に表示するページ数
size"default""xs" | "sm" | "default" | "lg" | "xl"コンポーネントのサイズ (28/32/36/40/48px)
variant"default""default" | "outline" | "ghost"ビジュアルバリアント
color"default""default" | "primary"アクティブページの色
radius"md""sm" | "base" | "md" | "lg" | "xl" | "full"ボーダーの角丸
disabledfalseboolean全操作を無効化
withControlstrueboolean前へ・次へボタンの表示
withEdgesfalseboolean最初・最後ジャンプボタンの表示
loopfalseboolean最後→最初のループ移動
| Name | Type | Default | Description |
|---|---|---|---|
total | number | 1 | 総ページ数 |
value | number | undefined | 現在のページ(制御モード) |
defaultValue | number | 1 | 初期ページ(非制御モード) |
onChange | (page: number) => void | undefined | ページ変更時のコールバック |
siblings | number | 1 | 現在ページの両側に表示するページ数 |
boundaries | number | 1 | 先頭・末尾に常に表示するページ数 |
size | "xs" | "sm" | "default" | "lg" | "xl" | "default" | コンポーネントのサイズ (28/32/36/40/48px) |
variant | "default" | "outline" | "ghost" | "default" | ビジュアルバリアント |
color | "default" | "primary" | "default" | アクティブページの色 |
radius | "sm" | "base" | "md" | "lg" | "xl" | "full" | "md" | ボーダーの角丸 |
disabled | boolean | false | 全操作を無効化 |
withControls | boolean | true | 前へ・次へボタンの表示 |
withEdges | boolean | false | 最初・最後ジャンプボタンの表示 |
loop | boolean | false | 最後→最初のループ移動 |
PaginationLink
pageundefinednumber遷移先のページ番号
isActiveautobooleanアクティブ状態(省略時はContextから自動判定)
| Name | Type | Default | Description |
|---|---|---|---|
page | number | undefined | 遷移先のページ番号 |
isActive | boolean | auto | アクティブ状態(省略時はContextから自動判定) |
PaginationPrevious / PaginationNext / PaginationFirst / PaginationLast
iconBuilt-in SVG iconReactNodeカスタムアイコン
| Name | Type | Default | Description |
|---|---|---|---|
icon | ReactNode | Built-in SVG icon | カスタムアイコン |