Pagination

A pagination component allows users to navigate through large content views that have been split across multiple pages.

Examples

Top

1 - 10 of  36

Top sticky

1 - 10 of  36
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.

Indeterminate (item count is not known)

1 - 10 of  many

Bottom

Bottom sticky

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.

Top disabled

1 - 10 of  36

Compact

1 - 10 of  36

Top with display summary modifier

1 - 10 of  36

Top with display full modifier

1 - 10 of  36

Top with responsive display summary and display full modifiers

1 - 10 of  36

Compact display full modifier

1 - 10 of  36

Inset

1 - 10 of  36

Documentation

Accessibility

Attribute
Applied to
Outcome
aria-label
.pf-v6-c-pagination__nav
Provides an accessible name for pagination navigation element. Required
type="number"
.pf-v6-c-pagination__nav-page-select > .pf-v6-c-form-control
Defines a field as a number. Required
value
.pf-v6-c-pagination__nav-page-select > .pf-v6-c-form-control
Provides initial integer value. Required
min
.pf-v6-c-pagination__nav-page-select > .pf-v6-c-form-control
Provides minimum integer value. Required
max
.pf-v6-c-pagination__nav-page-select > .pf-v6-c-form-control
Provides max integer value. Required

Usage

Class
Applied to
Outcome
.pf-v6-c-pagination
<div>
Initiates pagination.
.pf-v6-c-pagination__current
<div>
Initiates element to display currently displayed items for use in responsive view. Only needed for default pagination, not .pf-m-bottom.
.pf-v6-c-pagination__total-items
<div>
Initiates element to replace the menu toggle on summary.
.pf-v6-c-pagination__page-menu
<div>
Initiates wrapper element for the pagination menu toggle. Required when a menu toggle is intended or expected to be rendered.
.pf-v6-c-pagination__nav
<nav>
Initiates pagination nav.
.pf-v6-c-pagination__nav-control
<div>
Initiates pagination nav control.
.pf-v6-c-pagination__nav-page-select
<div>
Initiates pagination nav page select.
.pf-m-display-summary{-on-[breakpoint]}
.pf-v6-c-pagination
Modifies for summary display pagination component styles at optional breakpoint.
.pf-m-display-full{-on-[breakpoint]}
.pf-v6-c-pagination
Modifies for full display pagination component styles at optional breakpoint.
.pf-m-bottom
.pf-v6-c-pagination
Modifies for bottom pagination component styles.
.pf-m-compact
.pf-v6-c-pagination
Modifies for compact pagination component styles.
.pf-m-static
.pf-v6-c-pagination.pf-m-bottom
Modifies bottom pagination to not be positioned sticky on summary.
.pf-m-sticky
.pf-v6-c-pagination
Modifies the pagination to be sticky to its container. It will be sticky to the top of the container by default, and sticky to the bottom of the container when applied to .pf-v6-c-pagination.pf-m-bottom.
.pf-m-inset-{none, sm, md, lg, xl, 2xl}{-on-[breakpoint]}
.pf-v6-c-pagination
Modifies pagination horizontal padding at optional breakpoint.
.pf-m-page-insets
.pf-v6-c-pagination
Modifies the pagination component padding/inset to visually match padding of page elements.
.pf-m-first
.pf-v6-c-pagination__nav-control
Indicates the control is for the first page button.
.pf-m-prev
.pf-v6-c-pagination__nav-control
Indicates the control is for the previous page button.
.pf-m-next
.pf-v6-c-pagination__nav-control
Indicates the control is for the next page button.
.pf-m-last
.pf-v6-c-pagination__nav-control
Indicates the control is for the last page button.

CSS variables

Expand or collapse columnSelectorVariableValue
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--inset
0
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--ColumnGap
1.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-page-insets--inset
1.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__nav--Display
none
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-display-summary__nav--Display
none
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-display-full__nav--Display
inline-flex
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__nav--ColumnGap
0.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__nav-page-select--FontSize
0.875rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__nav-page-select--ColumnGap
0.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__nav-page-select--c-form-control--width-base
calc((1rem + 1rem) + (1px * 2))
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__nav-page-select--c-form-control--width-chars
2
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__nav-page-select--c-form-control--Width
calc(calc((1rem + 1rem) + (1px * 2)) + (2 * 1ch))
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__total-items--Display
block
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-display-summary__total-items--Display
block
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-display-full__total-items--Display
none
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--BackgroundColor
(In light theme) #ffffff
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--BoxShadow
0px 1px 4px 0px rgba(0, 0, 0, 0.1600)
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--PaddingBlockStart
1rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--PaddingInlineEnd
1.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--PaddingBlockEnd
1rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--PaddingInlineStart
1.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--ZIndex
100
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-sticky--InsetBlockStart
0
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-bottom--BackgroundColor
(In light theme) #ffffff
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-bottom--BoxShadow
0px -1px 4px 0px rgba(0, 0, 0, 0.1600)
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-bottom--InsetBlockEnd
0
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-bottom--PaddingInlineEnd
1.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-bottom--PaddingInlineStart
1.5rem
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-bottom--m-sticky--BoxShadow
0px -1px 4px 0px rgba(0, 0, 0, 0.1600)
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__page-menu--Display--base
block
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__page-menu--Display
none
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-display-summary__page-menu--Display
none
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-display-full__page-menu--Display
block
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination--m-bottom__page-menu--Display
block
:where(:root, .pf-v6-c-pagination)--pf-v6-c-pagination__page-menu--md--Display
block
.pf-v6-c-pagination.pf-m-bottom--pf-v6-c-pagination--m-sticky--BoxShadow
0px -1px 4px 0px rgba(0, 0, 0, 0.1600)
.pf-v6-c-pagination.pf-m-bottom--pf-v6-c-pagination--m-sticky--InsetBlockStart
auto
.pf-v6-c-pagination.pf-m-bottom.pf-m-static--pf-v6-c-pagination--m-bottom--MarginBlockStart
0
.pf-v6-c-pagination.pf-m-bottom.pf-m-static--pf-v6-c-pagination--m-bottom--BorderBlockStartWidth
0
.pf-v6-c-pagination.pf-m-sticky--pf-v6-c-pagination--m-bottom--InsetBlockEnd
0
.pf-v6-c-pagination.pf-m-page-insets--pf-v6-c-pagination--inset
1.5rem
.pf-v6-c-pagination.pf-m-display-summary--pf-v6-c-pagination__nav--Display
none
.pf-v6-c-pagination.pf-m-display-summary--pf-v6-c-pagination__page-menu--Display
none
.pf-v6-c-pagination.pf-m-display-summary--pf-v6-c-pagination__total-items--Display
block
.pf-v6-c-pagination.pf-m-display-full--pf-v6-c-pagination__nav--Display
inline-flex
.pf-v6-c-pagination.pf-m-display-full--pf-v6-c-pagination__page-menu--Display
block
.pf-v6-c-pagination.pf-m-display-full--pf-v6-c-pagination__total-items--Display
none
.pf-v6-c-pagination.pf-m-inset-none--pf-v6-c-pagination--inset
0
.pf-v6-c-pagination.pf-m-inset-sm--pf-v6-c-pagination--inset
0.5rem
.pf-v6-c-pagination.pf-m-inset-md--pf-v6-c-pagination--inset
1rem
.pf-v6-c-pagination.pf-m-inset-lg--pf-v6-c-pagination--inset
1.5rem
.pf-v6-c-pagination.pf-m-inset-xl--pf-v6-c-pagination--inset
2rem
.pf-v6-c-pagination.pf-m-inset-2xl--pf-v6-c-pagination--inset
3rem