Overview
We use a large block of connected links for our pagination, making links hard to miss and easily
scalable—all while providing large hit areas. Pagination is built with list HTML elements so screen
readers can announce the number of available links. Use a wrapping <nav> element to
identify it as a navigation section to screen readers and other assistive technologies.
In addition, as pages likely have more than one such navigation section, it’s advisable to provide a
descriptive aria-label for the <nav> to reflect 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".
<nav aria-label="Page navigation example">
<ul class="pagination">
<li class="page-item"><a class="page-link border" href="#">Previous</a></li>
<li class="page-item"><a class="page-link border" href="#">1</a></li>
<li class="page-item"><a class="page-link border" href="#">2</a></li>
<li class="page-item"><a class="page-link border" href="#">3</a></li>
<li class="page-item"><a class="page-link border" href="#">Next</a></li>
</ul>
</nav>
<nav aria-label="Page navigation example"> <ul
class="pagination"> <li class="page-item"><a
class="page-link border" href="#">Previous</a></li> <li
class="page-item"><a class="page-link border"
href="#">1</a></li> <li class="page-item"><a
class="page-link border" href="#">2</a></li> <li
class="page-item"><a class="page-link border"
href="#">3</a></li> <li class="page-item"><a
class="page-link border" href="#">Next</a></li> </ul>
</nav>
Working with icons
Looking to use an icon or symbol in place of text for some pagination links? Be sure to provide proper
screen reader support with aria attributes.
<nav aria-label="Page navigation example">
<ul class="pagination">
<li class="page-item">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
<nav aria-label="Page navigation example"> <ul
class="pagination"> <li class="page-item"> <a
class="page-link" href="#" aria-label="Previous"> <span
aria-hidden="true">«</span> </a> </li> <li
class="page-item"><a class="page-link"
href="#">1</a></li> <li class="page-item"><a
class="page-link" href="#">2</a></li> <li
class="page-item"><a class="page-link"
href="#">3</a></li> <li class="page-item"> <a
class="page-link" href="#" aria-label="Next"> <span
aria-hidden="true">»</span> </a> </li> </ul>
</nav>
Active
Add .active to indicate a .page-item is the one currently being viewed. If
using an <a> on the current page, aria-current="page" should
be added for assistive technologies.
<nav aria-label="...">
<ul class="pagination">
<li class="page-item"><a href="#" class="page-link">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active">
<a class="page-link" href="#" aria-current="page">2</a>
</li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>
</nav>
<nav aria-label="..."> <ul class="pagination"> <li
class="page-item"><a href="#"
class="page-link">Previous</a></li> <li
class="page-item"><a class="page-link"
href="#">1</a></li> <li class="page-item active"> <a
class="page-link" href="#" aria-current="page">2</a>
</li> <li class="page-item"><a class="page-link"
href="#">3</a></li> <li class="page-item"><a
class="page-link" href="#">Next</a></li> </ul>
</nav>
If using a non-interactive element, like a <span> for the current page, you may
omit the aria-current attribute.
<li class="page-item active">
<span class="page-link">2</span>
</li>
Disabled
Add .disabled to a .page-item to make it appear un-clickable. While
.disabled uses pointer-events: none to disable the link‘s interactivity,
that CSS property is not yet standardized and doesn’t account for keyboard navigation. As such, you
should always add tabindex="-1" on disabled links and use custom JavaScript to
fully disable their functionality.
<nav aria-label="...">
<ul class="pagination">
<li class="page-item disabled">
<a class="page-link">Previous</a>
</li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active">
<a class="page-link" href="#" aria-current="page">2</a>
</li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
</nav>
<nav aria-label="..."> <ul class="pagination"> <li
class="page-item disabled"> <a class="page-link">Previous</a>
</li> <li class="page-item"><a class="page-link"
href="#">1</a></li> <li class="page-item active"> <a
class="page-link" href="#" aria-current="page">2</a>
</li> <li class="page-item"><a class="page-link"
href="#">3</a></li> <li class="page-item"> <a
class="page-link" href="#">Next</a> </li> </ul>
</nav>
And just like active page items, you can swap out the disabled <a> for a
<span> to remove click functionality and prevent keyboard focus while retaining
intended styles.
<li class="page-item disabled">
<span class="page-link">Previous</span>
</li>
Sizing
Fancy larger or smaller pagination? Add .pagination-lg or .pagination-sm for
additional sizes.
<nav aria-label="...">
<ul class="pagination pagination-lg">
<li class="page-item active" >
<a class="page-link" aria-current="page">1</a>
</li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
</nav>
<nav aria-label="..."> <ul class="pagination pagination-lg">
<li class="page-item active" > <a class="page-link"
aria-current="page">1</a> </li> <li
class="page-item"><a class="page-link"
href="#">2</a></li> <li class="page-item"><a
class="page-link" href="#">3</a></li> </ul>
</nav>
<nav aria-label="...">
<ul class="pagination pagination-sm">
<li class="page-item active">
<a class="page-link" aria-current="page">1</a>
</li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
</nav>
<nav aria-label="..."> <ul class="pagination pagination-sm">
<li class="page-item active"> <a class="page-link"
aria-current="page">1</a> </li> <li
class="page-item"><a class="page-link"
href="#">2</a></li> <li class="page-item"><a
class="page-link" href="#">3</a></li> </ul>
</nav>
Alignment
Change the alignment of pagination components with
flexbox utilities. For example, with
.justify-content-center:
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-center">
<li class="page-item disabled">
<a class="page-link">Previous</a>
</li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
</nav>
<nav aria-label="Page navigation example"> <ul class="pagination
justify-content-center"> <li class="page-item disabled"> <a
class="page-link">Previous</a> </li> <li
class="page-item"><a class="page-link"
href="#">1</a></li> <li class="page-item"><a
class="page-link" href="#">2</a></li> <li
class="page-item"><a class="page-link"
href="#">3</a></li> <li class="page-item"> <a
class="page-link" href="#">Next</a> </li> </ul>
</nav>
Or with .justify-content-end:
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-end">
<li class="page-item disabled">
<a class="page-link">Previous</a>
</li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
</nav>
<nav aria-label="Page navigation example"> <ul class="pagination
justify-content-end"> <li class="page-item disabled"> <a
class="page-link">Previous</a> </li> <li
class="page-item"><a class="page-link"
href="#">1</a></li> <li class="page-item"><a
class="page-link" href="#">2</a></li> <li
class="page-item"><a class="page-link"
href="#">3</a></li> <li class="page-item"> <a
class="page-link" href="#">Next</a> </li> </ul>
</nav>