Provide pagination links for your site or app with the multi-page pagination component, or the simpler pager alternative.
Simple pagination inspired by Rdio, great for apps and search results. The large block is hard to miss, easily scalable, and provides large click areas.
nav(aria-label='Page navigation')
ul.pagination
li
a(href='#', aria-label='Previous')
span(aria-hidden='true') «
li
a(href='#') 1
li
a(href='#') 2
li
a(href='#') 3
li
a(href='#') 4
li
a(href='#') 5
li
a(href='#', aria-label='Next')
span(aria-hidden='true') »
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
The pagination component should be wrapped in a <nav>
element to identify it as a navigation section to screen readers and other assistive technologies. In addition, as a page is likely to have more than one such navigation section already (such as the primary navigation in the header, or a sidebar navigation), it is advisable to provide a descriptive aria-label
for the <nav>
which reflects its purpose. For example, if the pagination component is used to navigate between a set of search results, an appropriate label could be aria-label="Search results pages"
.
Links are customizable for different circumstances. Use .disabled
for unclickable links and .active
to indicate the current page.
nav(aria-label='...')
ul.pagination
li.disabled
a(href='#', aria-label='Previous')
span(aria-hidden='true') «
li.active
a(href='#')
| 1
span.sr-only (current)
<nav aria-label="...">
<ul class="pagination">
<li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">«</span></a></li>
<li class="active"><a href="#">1 <span class="sr-only">(current)</span></a></li>
</ul>
</nav>
We recommend that you swap out active or disabled anchors for <span>
, or omit the anchor in the case of the previous/next arrows, to remove click functionality while retaining intended styles.
nav(aria-label='...')
ul.pagination
li.disabled
span
span(aria-hidden='true') «
li.active
span
| 1
span.sr-only (current)
<nav aria-label="...">
<ul class="pagination">
<li class="disabled">
<span>
<span aria-hidden="true">«</span>
</span>
</li>
<li class="active">
<span>1 <span class="sr-only">(current)</span></span>
</li>
</ul>
</nav>
Fancy larger or smaller pagination? Add .pagination-lg
or .pagination-sm
for additional sizes.
nav(aria-label='...')
ul.pagination.pagination-lg ...
nav(aria-label='...')
ul.pagination ...
nav(aria-label='...')
ul.pagination.pagination-sm ...
<nav aria-label="..."><ul class="pagination pagination-lg">...</ul></nav>
<nav aria-label="..."><ul class="pagination">...</ul></nav>
<nav aria-label="..."><ul class="pagination pagination-sm">...</ul></nav>
Quick previous and next links for simple pagination implementations with light markup and styles. It's great for simple sites like blogs or magazines.
By default, the pager centers links.
nav(aria-label='...')
ul.pager
li
a(href='#') Previous
li
a(href='#') Next
<nav aria-label="...">
<ul class="pager">
<li><a href="#">Previous</a></li>
<li><a href="#">Next</a></li>
</ul>
</nav>
Alternatively, you can align each link to the sides:
nav(aria-label='...')
ul.pager
li.previous
a(href='#')
span(aria-hidden='true') ←
| Older
li.next
a(href='#')
| Newer
span(aria-hidden='true') →
<nav aria-label="...">
<ul class="pager">
<li class="previous"><a href="#"><span aria-hidden="true">←</span> Older</a></li>
<li class="next"><a href="#">Newer <span aria-hidden="true">→</span></a></li>
</ul>
</nav>
Pager links also use the general .disabled
utility class from the pagination.
nav(aria-label='...')
ul.pager
li.previous.disabled
a(href='#')
span(aria-hidden='true') ←
| Older
li.next
a(href='#')
| Newer
span(aria-hidden='true') →
<nav aria-label="...">
<ul class="pager">
<li class="previous disabled"><a href="#"><span aria-hidden="true">←</span> Older</a></li>
<li class="next"><a href="#">Newer <span aria-hidden="true">→</span></a></li>
</ul>
</nav>