MDS Assistant is an experiment.
Hi, I'm the MDS Assistant and can help you with information from our guidelines and components.

I do not provide code and development guidance. For coding assistance, please check out our experimental MCP server.

Pagination

Pagination splits large sets of content into manageable pages and provides navigation between them.

Best practice

  • Only split content/data across pages when there are more than 25 items.
  • Use Button pagination for simple navigation between content pages, e.g. articles and search results.
  • Use Select pagination for smaller data tables, e.g. 200 rows.
  • Use Input pagination for large datasets, e.g. 2000 rows.
  • In most cases, the pagination is placed directly below the content it controls.
  • In some cases, it might also be valuable to place the pagination above the content it controls.

Usage

The pagination component comes in 3 variants – Button, Select and Input:

  • Use Button pagination for navigating between content pages, such as articles and Search Results.
  • Use Select pagination for smaller data tables, e.g. 200 rows.
  • Use Input pagination for large data tables, e.g. 2000 rows.

In some cases, the pagination component is not the most appropriate way of navigating large quantities of data. Sometimes simpler or more advanced controls can be applied depending on the user’s needs and the technical constraints. Read more about the pagination alternatives at the bottom of the page.

Additional features

Each pagination variant (button, select and input) comes with the possibility to show and hide additional features: pagesize, page status and first and last page buttons.

Anatomy of the additional features that come with each pagination variant.

  1. Page size: allows the user to select the number of items per page.
  2. Page status: show what range is currently displayed.
  3. First and Last page buttons allow the user to navigate to the start and end.

Button pagination

Use the Button pagination for simple navigation between content pages e.g. article page or search results. The Button Pagination is good for cases where the user does not need to find specific information, but rather just browse items or read in-depth articles.

The button pagination on a page with search results.
The button pagination on a page with search results.

Truncation

The Button pagination uses truncation by default to keep navigation simple and efficient. This approach ensures users can always navigate to the first and last page as well as view the total number of pages.

The button pagination with the default truncation.
The button pagination with the default truncation.

Truncation can be disabled in cases where it is unnecessary — such as in search results, where the total page count often adds little value.

Button pagination with truncation disabled.
Button pagination with truncation disabled.

Compact pagination

In some cases, you might want to provide the user with a lighter way to navigate through content e.g. if you have a slideshow like the example below. In such cases, you can configure the pagination to only show the “previous” and “next” arrows.

A slideshow that uses a compact configuration of the pagination.
A slideshow that uses a compact configuration of the pagination.

Select pagination

Select pagination works well in smaller tables, e.g. 200 rows. For large data tables use the Input Pagination, since it will provide an easier way for the user to jump to a specific page within in the dataset.

Avoid using the Select pagination in large datasets. The larger the total number of pages becomes the more difficult it also becomes for the user to select the correct page in the select. In such cases use the Input Pagination.

Select pagination used in a smaller table.
Select pagination used in a smaller table.

Input pagination

Input pagination is similar to the Select Pagination, but offers a more effective way of jumping to a specific page within a large dataset, e.g. 2000 rows.

Input pagination used in a large data table.
Input pagination used in a large data table.

Pagination alternatives

If the users know what they are looking for, it may be worth saving them the hassle of browsing through multiple pages by allowing them to search, filter and sort through the data. You can read more in our Search, Filter and Sort Guidelines.

Infinite scroll

The page content is dynamically added to the bottom of the page as the user scrolls to avoid overloading the server. However, this approach is generally discouraged due to the lack of user control and the inability to reach the bottom of the page.

Load more button

Allow the users to load more results on demand without having to reload the entire page or dealing with a pagination control (which has been shown to discourage users from exploring past the first page). This approach is encouraged when users are browsing through items (explorative) rather than looking for a specific/known item (goal-oriented).

A load more button used for a page of cards.
A load more button used for a page of cards.