2016-01-26 21:12:48 +03:00
---
layout: docs
title: Pagination
group: components
---
2016-03-18 01:25:31 +03:00
[//]: # DO NOT EDIT IT WILL BE OVERWRITTEN - copy of bootstrap documentation generated by gulp docs:copy:bs-docs
2016-01-26 21:12:48 +03:00
{% callout info %}
2016-03-09 19:23:01 +03:00
**Bootstrap Reference Documentation**
This is a part of the reference documentation from < a href = "http://getbootstrap.com" > Bootstrap< / a > .
2016-08-01 15:17:55 +03:00
It is included here to demonstrate rendering with Bootstrap Material Design default styling.
2016-01-26 21:12:48 +03:00
See the < a href = "/material-design/buttons" > Material Design< / a > section for more elements and customization options.
{% endcallout %}
2016-03-09 19:23:01 +03:00
2016-01-26 21:12:48 +03:00
Provide pagination links for your site or app with the multi-page pagination component.
## Contents
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
## Overview
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.
{% example html %}
2016-04-29 23:28:40 +03:00
< nav aria-label = "Page navigation" >
2016-01-26 21:12:48 +03:00
< ul class = "pagination" >
< li class = "page-item" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" aria-label = "Previous" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_left< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Previous< / span >
< / a >
< / li >
2016-08-02 20:44:50 +03:00
< 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 = "#" > 4< / a > < / li >
< li class = "page-item" > < a class = "page-link" href = "#" > 5< / a > < / li >
2016-01-26 21:12:48 +03:00
< li class = "page-item" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" aria-label = "Next" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_right< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Next< / span >
< / a >
< / li >
< / ul >
< / nav >
{% endexample %}
2016-04-29 23:28:40 +03:00
{% callout info %}
### Labelling the pagination component
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"` .
{% endcallout %}
2016-01-26 21:12:48 +03:00
## Disabled and active states
Links are customizable for different circumstances. Use `.disabled` for unclickable links and `.active` to indicate the current page.
{% callout warning %}
#### Link functionality caveat
The `.disabled` class uses `pointer-events: none` to try to disable the link functionality of `<a>` s, but that CSS property is not yet standardized. In addition, even in browsers that do support `pointer-events: none` , keyboard navigation remains unaffected, meaning that sighted keyboard users and users of assistive technologies will still be able to activate these links. So to be safe, add a `tabindex="-1"` attribute on these links (to prevent them from receiving keyboard focus) and use custom JavaScript to disable their functionality.
{% endcallout %}
{% example html %}
2016-04-29 23:28:40 +03:00
< nav aria-label = "..." >
2016-01-26 21:12:48 +03:00
< ul class = "pagination" >
< li class = "page-item disabled" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" tabindex = "-1" aria-label = "Previous" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_left< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Previous< / span >
< / a >
< / li >
< li class = "page-item active" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" > 1 < span class = "sr-only" > (current)< / span > < / a >
2016-01-26 21:12:48 +03:00
< / li >
2016-08-02 20:44:50 +03:00
< 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 = "#" > 4< / a > < / li >
< li class = "page-item" > < a class = "page-link" href = "#" > 5< / a > < / li >
2016-01-26 21:12:48 +03:00
< li class = "page-item" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" aria-label = "Next" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_right< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Next< / span >
< / a >
< / li >
< / ul >
< / nav >
{% endexample %}
You can optionally swap out active or disabled anchors for `<span>` , or omit the anchor in the case of the prev/next arrows, to remove click functionality and prevent keyboard focus while retaining intended styles.
{% example html %}
2016-04-29 23:28:40 +03:00
< nav aria-label = "..." >
2016-01-26 21:12:48 +03:00
< ul class = "pagination" >
< li class = "page-item disabled" >
< span class = "page-link" aria-label = "Previous" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_left< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Previous< / span >
< / span >
< / li >
< li class = "page-item active" > < span class = "page-link" > 1 < span class = "sr-only" > (current)< / span > < / span > < / li >
< / ul >
< / nav >
{% endexample %}
## Sizing
Fancy larger or smaller pagination? Add `.pagination-lg` or `.pagination-sm` for additional sizes.
{% example html %}
2016-04-29 23:28:40 +03:00
< nav aria-label = "..." >
2016-01-26 21:12:48 +03:00
< ul class = "pagination pagination-lg" >
< li class = "page-item" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" aria-label = "Previous" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_left< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Previous< / span >
< / a >
< / li >
2016-08-02 20:44:50 +03:00
< 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 >
2016-01-26 21:12:48 +03:00
< li class = "page-item" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" aria-label = "Next" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_right< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Next< / span >
< / a >
< / li >
< / ul >
< / nav >
{% endexample %}
{% example html %}
2016-04-29 23:28:40 +03:00
< nav aria-label = "..." >
2016-01-26 21:12:48 +03:00
< ul class = "pagination pagination-sm" >
< li class = "page-item" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" aria-label = "Previous" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_left< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Previous< / span >
< / a >
< / li >
2016-08-02 20:44:50 +03:00
< 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 >
2016-01-26 21:12:48 +03:00
< li class = "page-item" >
2016-08-02 20:44:50 +03:00
< a class = "page-link" href = "#" aria-label = "Next" >
2016-08-03 15:47:02 +03:00
< span aria-hidden = "true" class = "material-icons" > chevron_right< / span >
2016-01-26 21:12:48 +03:00
< span class = "sr-only" > Next< / span >
< / a >
< / li >
< / ul >
< / nav >
{% endexample %}