Pagination

Moves a reader through a finite, ordered collection: eight assembled forms over one headless namespace, all controlled by your state.

Demo

hero
Component
total
siblingCount
import { useState } from "react"; import { PaginationPageDefault } from "@/components/application/pagination/pagination"; const [page, setPage] = useState(1); <PaginationPageDefault page={page} onPageChange={setPage} total={10} />

In context

in-context

Family

family
PaginationPageDefault
PaginationPageMinimalCenter
PaginationCardDefault
PaginationCardMinimal
PaginationButtonGroup
PaginationCardAdvanced
PaginationLine
Pagination

Types

cells

The six paging forms, and the three that take rounded.

Page forms

PaginationPageDefault, link-gray triggers
PaginationPageMinimalCenter, outlined triggers

Card forms

Studio A · 2:00 PMStudio B · 4:30 PM
PaginationCardDefault
Studio A · 2:00 PMStudio B · 4:30 PM
PaginationCardMinimal, no numbers
Studio A · 2:00 PMStudio B · 4:30 PM
PaginationButtonGroup, one joined group
Studio A · 2:00 PMStudio B · 4:30 PM
PaginationCardAdvanced: page field, rows per page, jumps

rounded

PaginationPageDefault, rounded
PaginationPageMinimalCenter, rounded
Studio A · 2:00 PMStudio B · 4:30 PM
PaginationCardDefault, rounded

Layouts

cells

align, on the three forms that take it.

PaginationCardMinimal align

Studio A · 2:00 PMStudio B · 4:30 PM
align left
Studio A · 2:00 PMStudio B · 4:30 PM
align center
Studio A · 2:00 PMStudio B · 4:30 PM
align right

PaginationButtonGroup align

Studio A · 2:00 PMStudio B · 4:30 PM
align left
Studio A · 2:00 PMStudio B · 4:30 PM
align center
Studio A · 2:00 PMStudio B · 4:30 PM
align right

PaginationCardAdvanced align

Studio A · 2:00 PMStudio B · 4:30 PM
align space-between
Studio A · 2:00 PMStudio B · 4:30 PM
align center

Behaviour

cells

The ellipsis

total 5: every page, no ellipsis
page 1 of 24: an ellipsis on the right
page 12 of 24: an ellipsis each side
page 24 of 24: an ellipsis on the left
siblingCount 0, page 12 of 24
siblingCount 2, page 12 of 24

Below md

PaginationCardMinimal: arrows around the count
PaginationButtonGroup: five cells, icon-only triggers
PaginationCardAdvanced: first and last jumps kept

Content

cells

Three-digit pages

page 500 of 1000, in the fixed cell
Studio A · 2:00 PMStudio B · 4:30 PM
PaginationButtonGroup, page 500 of 1000
Studio A · 2:00 PMStudio B · 4:30 PM
PaginationCardAdvanced, page 500 of 1000, the field grows

Loading

cells
Loading pagination
type page, Previous and Next real
Loading pagination
type card, Previous, Next and Select real

States

cells
page 1: Previous disabled
page 10 of 10: Next disabled
total 1: both ends disabled
page 3: current ringed; hover and focus live
Studio A · 2:00 PMStudio B · 4:30 PM
PaginationCardAdvanced at page 1: Previous and first jump disabled