Pagination

Navigation between multiple pages of some set of results. Controls are provided to navigate through multiple pages of related data.

Basic usage (Default Size)

Secondary

Reduced

Minimal

Basic usage (Small Size)

Secondary

Reduced

Minimal

Inverse Pallete (Default Size)

Inverse Pallete (Small Size)

Theme Variables (SCSS)

// Pagination
$pagination-padding-y: .625rem !default;
$pagination-padding-x: 1rem !default;
$pagination-padding-y-sm: .8rem !default;
$pagination-padding-x-sm: .6rem !default;
$pagination-padding-y-lg: .75rem !default;
$pagination-padding-x-lg: 1.5rem !default;
$pagination-margin-x: .5rem !default;
$pagination-margin-y: .5rem !default;
$pagination-line-height: 1.5rem !default;
$pagination-font-size-sm: .875rem !default;
$pagination-icon-size: 1.375rem !default;
$pagination-icon-size-sm: 1rem !default;
$pagination-icon-width: 2.25rem !default;
$pagination-icon-height: 2.25rem !default;
$pagination-padding-icon: .5rem !default;
$pagination-toggle-border: .3125rem !default;
$pagination-toggle-border-sm: .25rem !default;
$pagination-secondary-height: 2.75rem !default;
$pagination-secondary-height-sm: 2.25rem !default;
$pagination-color: $link-color !default;
$pagination-color-inverse: $white !default;
$pagination-bg: $white !default;
$pagination-border-width: $border-width !default;
$pagination-border-color: theme-color("gray", "border") !default;
$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
$pagination-focus-outline: 0 !default;
$pagination-hover-color: $link-hover-color !default;
$pagination-hover-bg: theme-color("gray", "background") !default;
$pagination-hover-border-color: theme-color("gray", "border") !default;
$pagination-active-color: $component-active-color !default;
$pagination-active-bg: $component-active-bg !default;
$pagination-active-border-color: $pagination-active-bg !default;
$pagination-disabled-color: theme-color("gray", "light-text") !default;
$pagination-disabled-bg: $white !default;
$pagination-disabled-border-color: theme-color("gray", "disabled-border") !default;
$pagination-border-radius-sm: $border-radius-sm !default;
$pagination-border-radius-lg: $border-radius-lg !default;
$pagination-reduced-dropdown-max-height: 60vh !default;
$pagination-reduced-dropdown-min-width: 6rem !default;
Pagination Props API
  • onPageSelect
    func Required

    Specifies a callback function that is executed when the user selects a page button or the Previous/Next buttons. For example:

     <Pagination onPageSelect={(pageNumber) => { console.log(pageNumber); } />
    
  • pageCount
    number Required

    Specifies the total number of pages in the Pagination component.

  • paginationLabel
    string Required

    Specifies the aria-label for the <nav> element that wraps the pagination button list.

  • buttonLabels
    shape {
    previous: string,
    next: string,
    page: string,
    currentPage: string,
    pageOfCount: string,
    }

    Specifies the labels to use for the Previous/Next buttons as well as the various parts of aria-label on the page buttons for accessibility. All button labels accept both string or elements. The button label options are as follows:

    previous: Text for the Previous button;

    next: Text for the Next button;

    page: Text in the aria-label on page buttons to describe the button (e.g., "Page 1");

    currentPage: Text to depict the selected page in the aria-label on page buttons (e.g., "Page 1, Current Page");

    pageOfCount: Text that separates the current page and total page count for the mobile UI (e.g., "Page 1 of 20").

    The default is:

    {
      previous: 'Previous',
      next: 'Next',
      page: 'Page',
      currentPage: 'Current Page',
      pageOfCount: 'of',
    }
    
    Default{ previous: 'Previous', next: 'Next', page: 'Page', currentPage: 'Current Page', pageOfCount: 'of', }
  • className
    string

    Specifies any class name(s) for the Pagination component. The default is an empty string.

  • currentPage
    number

    specifies the page that the Pagination component will automatically select. The default is 1.

    Default1
  • maxPagesDisplayed
    between({ gt: 4 })

    Specifies the number of page buttons to display in between the Previous and Next buttons. This number also includes any ellipses in the total count. Also, to ensure that at least one clickable page button is shown when both ellipses are displayed, this value must be greater than 4. The default is 7.

    Default7
  • icons
    shape {
    leftIcon: node,
    rightIcon: node,
    }

    Specifies icons used to indicate previous and next page. Can be an element, string, symbol, etc. Default is chevrons rendered using fa-css.

    Default{ leftIcon: <Icon src={ChevronLeft} />, rightIcon: <Icon src={ChevronRight} />, }
  • variant
    enum'default' | 'secondary' | 'reduced' | 'minimal'
    Default'default'
  • invertColors
    bool
    Defaultfalse
  • size
    enum'default' | 'small'
    Default'default'