Pagination

Pagination with controlled and uncontrolled modes, automatic range collapsing, an optional page-size selector and jump input, and outline / filled looks.

Props

PropTypeDefaultDescription
totalnumber—Total number of pages
pagenumber—Controlled current page (1-based)
defaultPagenumber1Initial page when uncontrolled
onPageChange(page: number) => void—Called on every change, controlled or not
siblingCountnumber'1'Number of pages shown on each side of the current page
boundaryCountnumber'1'Number of pages pinned at the first and last ends
showEdgesbooleanfalseWhether the first / last buttons show
variant'outline' | 'filled''outline'Appearance: outline (accent outline + tint on the current page) or filled (solid accent)
size'sm' | 'md''md'Control size: sm / md
disabledbooleanfalseDisable the whole control
pageSizenumber—Controlled page size; the selector shows when pageSizeOptions is set
defaultPageSizenumber—Initial page size when uncontrolled, defaults to the first option
pageSizeOptionsnumber[]—Page-size options; the selector shows once provided
onPageSizeChange(pageSize: number) => void—Called when the page size changes
showJumpbooleanfalseWhether the jump-to-page input shows
labelsPartial<PaginationLabels>—Override built-in copy (aria labels and hints)
...restHTMLAttributes—Remaining props are forwarded to the native nav