logo

SINGULARITY

DOCS

PurchaseReturn to the Dashboard
Reference

Pagination

The Pagination component allows users to choose a specific page from a series of available pages.

Basic pagination

Outlined pagination

Rounded pagination

Pagination size

Buttons

You can choose to include buttons for the first and last pages or deactivate the buttons for the previous and next pages.

Custom icons

The control icons can be customized as needed.

Pagination ranges

You can define the number of digits shown on either side of the current page using the siblingCount prop, and near the start and end page numbers with the boundaryCount prop.

Controlled pagination

Page: 1

usePagination

For advanced customization scenarios, the headless usePagination() hook is provided. It accepts nearly the same options as the Pagination component, excluding props related to JSX rendering. The Pagination component is built using this hook.
import usePagination from '@mui/material/usePagination';

Table pagination

The Pagination component is designed to navigate through a list of items when infinite loading is not utilized. It is ideal for scenarios where SEO matters, such as a blog.
For paginating large datasets in a table, the TablePagination component is recommended.

Rows per page:

21–30 of 100

:::warning Be aware that the Pagination page prop begins at 1 to align with URL inclusion requirements, whereas the TablePagination page prop starts at 0 to match the zero-based indexing of JavaScript arrays used for rendering large tabular datasets. :::
You can explore this use case further in the table section of the documentation.

Accessibility

ARIA

The root node is assigned a "navigation" role and an aria-label of "pagination navigation" by default. Page items include an aria-label indicating their purpose (e.g., "go to first page", "go to previous page", "go to page 1"). These can be customized using the getItemAriaLabel prop.

Keyboard

Pagination items are accessible via keyboard, each with a tabindex of "0".