Pagination
deprecated v2.0.0

This component is now deprecated and will be removed/refactored in v2.0.0

Introduction

Allow users to navigate through a list of phenomena over multiple pages or screens, as this list would otherwise be too long display in one go.

Examples

Pagination on first item

<nav>
       <ol class="pagination">
           <li class="pagination__item pagination__item--prev">
               <a href="#" class="pagination__link pagination__link--prev icon icon--left-grey is-disabled">prev</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link is-current">1</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">2</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">3</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">4</a>
           </li>
           <li class="pagination__item">
               ...
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">13</a>
           </li>
           <li class="pagination__item pagination__item--next">
               <a href="#" class="pagination__link pagination__link--next icon icon--right-grey">next</a>
           </li>
       </ol>
         <div class="pagination-label">Page 1 of 13</div>
     </nav>

Pagination on fourth item

<nav>
       <ol class="pagination">
           <li class="pagination__item pagination__item--prev">
               <a href="#" class="pagination__link pagination__link--prev icon icon--left-grey">prev</a>
           </li>
           <li class="pagination__item">
               ...
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">2</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">3</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link is-current">4</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">5</a>
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">6</a>
           </li>
           <li class="pagination__item">
               ...
           </li>
           <li class="pagination__item">
               <a href="#" class="pagination__link">13</a>
           </li>
           <li class="pagination__item pagination__item--next">
               <a href="#" class="pagination__link pagination__link--next icon icon--right-grey">next</a>
           </li>
       </ol>
         <div class="pagination-label">Page 4 of 13</div>
     </nav>

Dependencies

  • src/styles/base/*.scss
  • src/styles/components/elements/_icon.scss
  • src/styles/components/blocks/_pagination.scss

Usage

Class/JavaScript Hook Description Required?
.pagination Placed on the ol tag that will contain the pagination. Include inside a nav tag for better accessibility. Required
.pagination__item Placed on each li inside the .pagination. Applicable for all items, including previous, next, ellipses, and item/page numbers. Required
.pagination__link Placed on all links inside the .pagination__item. Required
.pagination__item--prev|next Placed on the previous and next buttons, on both the .pagination__item and .pagination__link element levels. Required
.pagination__link--prev|next Placed on the previous and next buttons, on both the .pagination__item and .pagination__link element levels. Required
.is-disabled Placed on the previous or next button that is disabled due to current position being on the first or last item Required
.is-current Placed on current page/item on the .pagination__link element level. Required
.pagination-label Placed on the tag that wraps the text used in place of all page numbers on smaller screens, in the form of 'Page x of y'. This is placed immediately after, not inside, the .pagination block, hence it is its own block level class. Required