Pagination is a set of links that allow users to navigate content split into multiple pages. It typically includes navigational controls such as next and previous buttons, as well as direct links to specific pages.

Also known as: Page navigation, page toggle, page numbers, paging.

Anatomy

Pagination with skip navigation arrows featuring callout A indicating the skip to first page button, sequential navigation arrows featuring callout B indicating the navigate to previous page button, page numbers featuring callout C indicating the page numbers, a selected page number featuring callout D indicating the selected page number, and an ellipsis featuring callout E indicating the overflow pages.

A. Skip navigation arrow (optional): Links allowing users to skip to the first or last page.
B. Sequential navigation arrow (required): Links enabling users to navigate forward or back one page.
C. Page numbers (required): Visible numbers linking to other pages in the collection.
D. Selected page number (required): Indicator of the current page the user is interacting with.
E. Overflow ellipsis (optional): Non-interactive separator between the start or end page numbers.

Usage

When to use and when not to use different types of pagination
Component When to use When not to use
DefaultTo allow users to navigate a collection of content split into multiple pages.For content that can reasonably fit onto one page.
Slim paginationWhen space is limited, especially when other ways to filter down results are present.For content split across more than three pages.

Best practices

  • Ensure all page numbers and arrows function as interactive links, except the currently selected page.
  • Use a clear visual indicator to show which page is currently selected.
  • Always allow users to navigate to the first page, last page, back one page, or forward one page using navigation arrows.
  • Display a manageable number of page links, using ellipsis to truncate the list if necessary.
A set of page numbers with the first page active and the back arrows disabled.

Do Ensure navigation arrows are disabled when the first or last page is selected.

A set of page numbers that go up to 999

Don't Include too many pages. Ideally, sets should not go over 100 pages.

Default pagination

Default pagination provides a standard way to navigate through large volumes of content or datasets. It’s ideal for larger sets of content because it includes more functionality for users to easily move between pages. It typically includes sequential navigational controls, such as next and previous buttons, as well as ellipses and skip navigation controls for users to move to the first and last pages.

A set of page numbers ranging from one to five, a button for page one hundred, and back and forward arrows.

Slim pagination

Slim pagination is a more compact version of default pagination, designed for scenarios where screen space is limited or when a cleaner, less cluttered interface is desired. It includes only the essential navigational controls, such as next and previous buttons, and may omit direct links to specific pages. Slim pagination is ideal for mobile interfaces or when the total number of pages is relatively small and it’s feasible for the user to navigate one page at a time.

A set of page numbers ranging from one to three, back, and forward arrows

Placement

Pagination is usually centered below an element or at the foot of page content.

A set of page numbers, back, and forward arrows centered below a simplified page layout
  • Place pagination controls in consistent locations throughout an interface.

Results per page

The “Results per page” feature allows users to control how many items they see on each page of a paginated list. This functionality gives users the flexibility to view more or fewer items per page according to their preferences or needs. It’s particularly useful in scenarios where users may want to adjust the volume of information they are processing, such as in search results, product listings, or data tables.

A table with a pagination component including an option to choose how many results are shown per page, a set of page numbers, a button for page one hundred, back and forward arrows.
  • Set a reasonable default number of results per page that balances performance and usability, such as 10 to 20 items, without overwhelming users with too many choices.
  • Clearly indicate the current selection of results per page and make it easy for users to change this setting.
  • Save the user’s preference for the number of results per page, so that they don’t have to re-select it each time they return to the same page or application.
  • Ensure that the “Results per page” feature works well on mobile devices, where screen space is limited and users may prefer fewer results per page to avoid excessive scrolling.

Behaviors

Pagination has a number of expected behaviors depending on the type selected. The guidance below outlines the expected behaviors of default pagination.

First four pages selected

When users navigate through pages 1–4 in a pagination set, pagination includes one overflow ellipsis symbol representing the pages between the fifth and last page. When page 1 is selected, the arrow buttons to navigate backward should be disabled.

A set of page numbers with the first page selected and back arrows disabled. Ellipses are shown between the 5th and 100th page.

Middle pages selected

When users select any page other than the first four or last four, pagination includes two overflow ellipsis symbols on either end of three internal page numbers. The selected page should always be the center of the set. The first and last page number should always show and all navigation arrows should be active.

A set of page numbers with a middle page selected and ellipses between the 1st and 4th number and 6th and 100th.

Last four pages selected

When users navigate through the last four pages, pagination includes one overflow ellipsis symbol after the number representing page 1. When the last page is selected, the arrow buttons to navigate forward should be disabled.

A set of page numbers with one of the last pages selected and ellipses between the 1st and 96th number.

Platform considerations

Web (default)

For web, pagination is shown in a single line with all four navigational arrows and utilizes the behaviors outlined above around overflow. Depending on the use case, navigational arrows can be simplified to the include only sequential controls.

A set of page numbers, back, forward, jump to end, and jump to beginning arrows

Mobile

Mobile screen sizes use a five-control design that limits how many pages are available to users. While pagination for mobile screen sizes is available, it’s generally not recommended for use and isn’t available in mobile native.

A set of page numbers, ranging from one to five, with the first page active, the forward arrow enabled, and the back arrow disabled.

Do Use the slim pagination component or a mobile alternative when the web screen is too small.

A set of page numbers, ranging from 100 to 999 and truncated on both ends.

Don't Use default pagination on small screen sizes that would require truncating or changing its visual appearance.



Consider implementing these common alternatives in place of mobile pagination.

Infinite scrolling

Infinite scrolling automatically loads new content as a user scrolls through the page, eliminating the need to manually navigate to the next page.

A mobile screen showing a circular indeterminate progress indicator at the bottom of the screen above the tab to indicate that new content is loading as the user scrolls.
  • Use for content-heavy applications where continuous exploration is needed.
  • Provide visual feedback if needed, such as a loading spinner, to indicate that new content is being loaded.
  • Avoid infinite scrolling for content where users might need to find specific information quickly.

“Load more” button scrolling

“Load more” buttons allow users to manually load content as needed. It provides more control than infinite scrolling, enabling users to decide when they want more information.

A mobile screen showing a button labeled 'Load more' at the bottom of the screen above the tab to indicate new content can be loaded by pressing the button.
  • Place the “load more” button at the bottom of the content list, ensuring it’s easily accessible.
  • Clearly indicate when new content has been loaded to avoid confusion.
  • Consider adding a counter or Progress indicator to show how much content remains unloaded.