Pagination

Page navigation with previous, next, numbered, and overflow links.

Installation

npx shadcn@latest add @fulldev/pagination

Usage

---
import {
  Pagination,
  PaginationContent,
  PaginationItem,
  PaginationLink,
} from "@/components/ui/pagination"
---

<Pagination>
  <PaginationContent>
    <PaginationItem
      ><PaginationLink href="?page=1">1</PaginationLink></PaginationItem
    >
    <PaginationItem
      ><PaginationLink href="?page=2" isActive>2</PaginationLink
      ></PaginationItem
    >
  </PaginationContent>
</Pagination>

Pagination uses normal links, so navigation works without JavaScript. isActive sets aria-current="page".

Examples

Disabled Boundary

A disabled link has no href, is removed from the tab order, and receives aria-disabled="true".

Compact

RTL

Directional icons mirror when the document or a containing element uses dir="rtl".

Composition

Pagination
└── PaginationContent
    ├── PaginationItem
    │   └── PaginationPrevious
    ├── PaginationItem
    │   └── PaginationLink
    ├── PaginationItem
    │   └── PaginationEllipsis
    └── PaginationItem
        └── PaginationNext

API Reference

PropTypeDefaultDescription
hrefstringoptionalLink destination.
isActivebooleanfalseMarks the current page and uses the outline variant.
disabledbooleanfalseRemoves navigation and tab focus.
sizeButton size"icon"Controls link dimensions.

PaginationPrevious and PaginationNext accept the same link attributes plus a text prop. All components forward their native element attributes.

See the GitHub source code for the component source.