Aliases
pager
PaginationPage navigation with a windowed range and current-page marker.
Aliases
pager
Foundations
Pagination when a list or table spans multiple discrete pages.Pagination when infinite scroll or direct filtering would be more useful.pagination container
root Wraps the page buttons and ellipsis markers.
page button
page Navigates to a specific page.
current page marker
current Identifies the active page.
| Name | Type | Default | Description |
|---|---|---|---|
page | number | — | Current active page. |
pageCount | number | — | Total number of pages. |
siblingCount | number | 1 | Number of sibling pages shown around the current page. |
size | 'sm' | 'md' | 'md' | Chooses the pagination size recipe. |
onChange | (detail: { page: number }) => void | — | Receives the new page number. |
theme | ThemeContract | — | Sets the theme used to resolve component styles. |
| Name | Payload | Description |
|---|---|---|
change | { page: number } | Fires with the new page number. |
| Name | Description |
|---|---|
default | Pagination is prop-driven and does not expose custom slots. |
Variants
default: Pagination uses one structural recipe and varies mainly by size.Sizes
sm: Compact paginationmd: Default paginationStates
rest: Inactive page buttoncurrent: Active pagedisabled: Unavailable boundary actionSemantics
Keyboard
Screen readers
Checklist
Implementation notes
Pagination renders buttons. Handle page changes to update the URL.A standard paged result control.
<Pagination page={4} pageCount={12} /> Smaller pagination works well near tables and dense lists.
<Pagination size="sm" page={2} pageCount={8} /> Windowing and ellipsis keep very long ranges readable.
<Pagination page={42} pageCount={180} siblingCount={2} /> Calculated fixtures; browser evidence is not collected. Layout estimates use declared text behavior and maximum token values.
size=md