Pagination

Numbered controls for moving through a long set of results a page at a time. It shows where you are and how far there is to go.

Preview

Mode
Pages

When to use

  • Below tables and lists with more results than fit on one page.
  • When people need to jump to a known page or come back to the same place later.

Reach for something else

  • For a feed people browse rather than search: load more, or scroll to load.
  • For a short linear sequence of steps: that is a Dot Stepper.

Anatomy

  1. 1

    Previous button

    Goes back one page; disabled on the first.

  2. 2

    Page buttons

    The first page, the last page and a window around the current one.

  3. 3

    Ellipsis

    Stands in for the pages hidden between the window and the ends. Not interactive.

  4. 4

    Current page

    A filled surface in brand ink.

  5. 5

    Next button

    Goes forward one page; disabled on the last.

States

Full

Page numbers with ellipses, and Previous and Next with labels.

Compact

Icon-only Previous and Next around a Page 3 of 12 label, for narrow spaces.

Hover

A soft grey wash on the page button.

Current

The filled page; pressing it does nothing.

Disabled

Previous on the first page, Next on the last.

Accessibility

  • The controls sit in a <nav> with aria-label="Pagination".
  • Each page is a link or button with an aria-label such as "Page 4"; the current one carries aria-current="page".
  • Icon-only Previous and Next carry aria-labels, and use the disabled attribute at the ends.
  • The ellipsis is aria-hidden, or read as "more pages", never as a control.

Source

The Pagination is in the Figma library today, with every variant and state above. Its React and Vue source ships with the code library, free, and this page gets the install line, the props and the code the day it does.

Tell me when the source landsand you'll get 10% off your first licence if you ever want the full library.

See it in a block

All documentation