Skip to main content

Pagination

Pagination is navigation for paginated content.



Default (Bounded)

Component Preview


Component Code

<nav aria-label="Pagination" class="usa-pagination"> <ul class="usa-pagination__list"> <li class="usa-pagination__item usa-pagination__arrow"> <a href="javascript:void(0);" class="usa-pagination__link usa-pagination__previous-page" aria-label="Previous page"> <svg class="usa-icon" aria-hidden="true" role="img"> <use href="/civic-guide/uswds/img/sprite.svg#navigate_before"></use> </svg> <span class="usa-pagination__link-text">Previous</span> </a> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Page 1">1</a> </li> <li class="usa-pagination__item usa-pagination__overflow" aria-label="ellipsis indicating non-visible pages"> <span>…</span> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Page 9">9</a> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button usa-current" aria-label="Page 10" aria-current="page">10</a> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Page 11">11</a> </li> <li class="usa-pagination__item usa-pagination__overflow" aria-label="ellipsis indicating non-visible pages"> <span>…</span> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Last page, page 24">24</a> </li> <li class="usa-pagination__item usa-pagination__arrow"> <a href="javascript:void(0);" class="usa-pagination__link usa-pagination__next-page" aria-label="Next page"> <span class="usa-pagination__link-text">Next </span> <svg class="usa-icon" aria-hidden="true" role="img"> <use href="/civic-guide/uswds/img/sprite.svg#navigate_next"></use> </svg> </a> </li> </ul> </nav>


Unbounded

Component Preview


Component Code

<nav aria-label="Pagination" class="usa-pagination"> <ul class="usa-pagination__list"> <li class="usa-pagination__item usa-pagination__arrow"> <a href="javascript:void(0);" class="usa-pagination__link usa-pagination__previous-page" aria-label="Previous page"> <svg class="usa-icon" aria-hidden="true" role="img"> <use href="/civic-guide/uswds/img/sprite.svg#navigate_before"></use> </svg> <span class="usa-pagination__link-text">Previous</span> </a> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Page 1">1</a> </li> <li class="usa-pagination__item usa-pagination__overflow" aria-label="ellipsis indicating non-visible pages"> <span>…</span> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Page 9">9</a> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button usa-current" aria-label="Page 10" aria-current="page">10</a> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Page 11">11</a> </li> <li class="usa-pagination__item usa-pagination__page-no"> <a href="javascript:void(0);" class="usa-pagination__button" aria-label="Page 12">12</a> </li> <li class="usa-pagination__item usa-pagination__overflow" aria-label="ellipsis indicating non-visible pages"> <span>…</span> </li> <li class="usa-pagination__item usa-pagination__arrow"> <a href="javascript:void(0);" class="usa-pagination__link usa-pagination__next-page" aria-label="Next page"> <span class="usa-pagination__link-text">Next </span> <svg class="usa-icon" aria-hidden="true" role="img"> <use href="/civic-guide/uswds/img/sprite.svg#navigate_next"></use> </svg> </a> </li> </ul> </nav>



Guidance

When to use the pagination component

Search results.
Pagination is most commonly used with paginated search results. The component works with both bounded (discrete number of pages) and unbounded (uncalculated number of pages) result sets.
Multi-page collections of related items.
Splitting a large collection of related items into individual pages can improve browsability and scannability. Common examples include articles related to a category or tag, content archives, and history or activity.

When to consider something else

Meaningful page groupings.
If you have long content split meaningfully, or grouped by subject or theme, use conventional navigation like Side navigation.
Steps in a sequence.
If you need to indicate progress in a series of steps that must be completed in succession, like an onboarding flow, consider using the step indicator component.
Short collections.
If the length of the entire collection is less than 3-4 screen lengths long, consider showing all the items at once instead of paginating.

Usability guidance

Show the size of the paginated set.
Users want to know the length of a paginated section. Always show the last page as the last item in the pagination navigation for bounded sets.
Highlight the current page.
Pagination shows the current page the user is on in relation to the entire collection of pages.
Always include the first, previous, and next pages.
Users should always be able to navigate to each of these pages from any page in the set.
Show navigation items in a single line.
Don't split the navigation items over multiple lines. Avoid using Pagination in any context where it would be more than one line long.
Indicate any missing pages.
Whenever there are pages missing, indicate them with an indicator like a non-selectable ellipsis.

Accessibility guidance

Use the nav element.
Use a wrapping <nav> element to identify Pagination as a navigation section to screen readers.
Use a unique, descriptive ARIA label.
Provide a descriptive ARIA label for any Pagination component's <nav> element that describes its purpose.
Voice the current page.
Use aria-current="page" on the current page's link item to properly voice the current page for screen readers.
Voice the word "page" before page numbers.
Use aria-label="page [#]" on each page link to be explicit that the numbers are links to page numbers.

USWDS Documentation

For more guidance, view the USWDS Pagination Component Documentation.




Settings

Variable Description
$theme-pagination-background-color

The background color of the entire pagination component.

$theme-pagination-breakpoint

Breakpoint at which full pagination displays.

$theme-pagination-button-border-radius

Default pagination button border radius.

$theme-pagination-button-border-width

Width of button border.

$theme-pagination-font-family

Default font family for pagination.




Variants

This component has no modifier class variants. The bounded vs unbounded distinction is determined by whether or not a last page link is included.

Type Description

Bounded

Has a discrete number of pages. Shows the last page as the final navigation item.

Unbounded

Has no calculated last page (e.g., large search results sorted by relevance). Shows an ellipsis at the end instead of a last page number.

Looking for U.S. government information and services?
Visit USA.gov