Skip to main content

Pagination

Pagination is used to navigate from page to page in paginated content, with a control for navigating to the next or previous page.

Examples​

Default​

The Default Pagination component is used to break up large sets of data across multiple pages. It is commonly used to navigate through items returned from a search or filtering operation.

<nav role="navigation" aria-label="Pages" class="bux-pagination">
<ul class="bux-pagination__list">
<li class="bux-pagination__item">
<a
aria-label="Go to previous page"
class="bux-pagination__link bux-pagination__link--previous"
href="#"
rel="noopener"
></a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 1"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">1</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 2"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">2</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 3"
aria-current="page"
class="bux-pagination__link bux-pagination__link--current"
href="#"
rel="noopener"
>
<span
class="bux-pagination__link__text bux-pagination__link--current__text"
>
3
</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 4"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">4</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 5"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">5</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Go to next page"
class="bux-pagination__link bux-pagination__link--next"
href="#"
rel="noopener"
></a>
</li>
</ul>
</nav>

Alternate Pagination​

When using pagination on a light background that isn't white, use this variant so there is proper contrast between the background and the pagination.

<nav
role="navigation"
aria-label="Pages"
class="bux-pagination bux-pagination--alt"
>
<ul class="bux-pagination__list">
<li class="bux-pagination__item">
<a
aria-label="Go to previous page"
class="bux-pagination__link bux-pagination__link--previous"
href="#"
rel="noopener"
></a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 1"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">1</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 2"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">2</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 3"
aria-current="page"
class="bux-pagination__link bux-pagination__link--current"
href="#"
rel="noopener"
>
<span
class="bux-pagination__link__text bux-pagination__link--current__text"
>
3
</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 4"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">4</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 5"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">5</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Go to next page"
class="bux-pagination__link bux-pagination__link--next"
href="#"
rel="noopener"
></a>
</li>
</ul>
</nav>

Truncated Pagination​

Behavior of the pagination when there are more pages than can be displayed at one time.

<nav role="navigation" aria-label="Pages" class="bux-pagination">
<ul class="bux-pagination__list">
<li class="bux-pagination__item">
<a
aria-label="Go to previous page"
class="bux-pagination__link bux-pagination__link--previous"
href="#"
rel="noopener"
></a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 1"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">1</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 2"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">2</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 3"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">3</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 4"
aria-current="page"
class="bux-pagination__link bux-pagination__link--current"
href="#"
rel="noopener"
>
<span
class="bux-pagination__link__text bux-pagination__link--current__text"
>
4
</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 5"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">5</span>
</a>
</li>
<li class="bux-pagination__item">
<span
class="bux-pagination__link bux-pagination__link--truncated"
aria-hidden="true"
role="presentation"
></span>
</li>
<li class="bux-pagination__item">
<a
aria-label="Page 10"
class="bux-pagination__link"
href="#"
rel="noopener"
>
<span class="bux-pagination__link__text">10</span>
</a>
</li>
<li class="bux-pagination__item">
<a
aria-label="Go to next page"
class="bux-pagination__link bux-pagination__link--next"
href="#"
rel="noopener"
></a>
</li>
</ul>
</nav>

Document Pagination​

The Document Pagination component is used for page-by-page navigation through content that is meant to be viewed in sequential order. It is often used for content such as books, manuals, or courses.

<nav aria-label="Document pages" class="bux-doc-pagination">
<div class="bux-doc-pagination__item bux-doc-pagination__item--prev">
<a
rel="prev noopener"
class="bux-doc-pagination__link bux-doc-pagination__link--prev"
href="#"
>
<div class="bux-doc-pagination__label bux-doc-pagination__label--prev">
Page 3
</div>
</a>
</div>
<div class="bux-doc-pagination__item bux-doc-pagination__item--next">
<a
rel="next noopener"
class="bux-doc-pagination__link bux-doc-pagination__link--next"
href="#"
>
<div class="bux-doc-pagination__label bux-doc-pagination__label--next">
Page 5
</div>
</a>
</div>
</nav>

Usage​

Dos​

  • Use on websites where users are looking for specific pieces of content, such as search results, articles related to a tag, or archives
  • Pagination is good for page load since the content on the page is limited by what is shown for each page

Don’ts​

  • Don’t use when users are exploring content or browsing aimlessly for something interesting; consider infinite scrolling instead
    • Infinite scrolling will continue to roll out relevant content in a way that is efficient, digestible, and interruption-free
  • Don't use more than five pages in the page list. If the document or collection has more than five pages, use Truncated Pagination instead

Implementation Notes​

Javascript​

  • The current page in the pagination list must have the aria-current role set to 'page'
  • Pagination must be in a nav landmark

Accessibility​

References​

Back to top