Navigation

Pagination

A structured navigation system that divides content into multiple pages, improving load performance and user experience. It supports customizable page sizes.

Loading...

Installation

Install the component via the CLI in one command.

npx shadcn@latest add @intentui/pagination

Composed components

When you install this component via the CLI, it automatically loads all composed components, so you don’t need to add them individually.

Manual installation

Use this approach if you prefer to install and wire up the component yourself instead of using the CLI.

npm install react-aria-components @heroicons/react tailwind-merge

Anatomy

import {
  Pagination,
  PaginationFirst,
  PaginationGap,
  PaginationItem,
  PaginationLabel,
  PaginationLast,
  PaginationList,
  PaginationNext,
  PaginationPrevious,
  PaginationSection,
} from "@/components/ui/pagination"
<Pagination>
  <PaginationList className="hidden md:flex">
    <PaginationFirst href="#" />
    <PaginationPrevious href="#" />
    <PaginationSection>
      <PaginationItem href="#">1</PaginationItem>
      <PaginationItem href="#">2</PaginationItem>
      <PaginationItem href="#">3</PaginationItem>
      <PaginationGap />
      <PaginationItem href="#">23</PaginationItem>
      <PaginationItem href="#" isCurrent>
        24
      </PaginationItem>
      <PaginationItem href="#">25</PaginationItem>
    </PaginationSection>

    <PaginationNext href="#" />
    <PaginationLast href="#" />
  </PaginationList>

  <PaginationList className="md:hidden">
    <PaginationFirst href="#" />
    <PaginationPrevious href="#" />
    <PaginationSection className="rounded-(--section-radius) border px-3 *:min-w-4">
      <PaginationLabel>3</PaginationLabel>
      <PaginationLabel className="text-muted-fg">/</PaginationLabel>
      <PaginationLabel>10</PaginationLabel>
    </PaginationSection>
    <PaginationNext href="#" />
    <PaginationLast href="#" />
  </PaginationList>
</Pagination>

Examples

Simple

The simple pagination setup doesn’t display page numbers, using only basic arrow navigation.

Loading...

Component API

Pagination

The Pagination component wraps pagination controls.

PropTypeDefault
classNamestring-

PaginationFirst

The PaginationFirst component links to the first page.

PropTypeDefault
classNamestring-

PaginationGap

The PaginationGap component represents skipped pages.

PropTypeDefault
classNamestring-

PaginationInfo

The PaginationInfo component displays pagination status text.

PropTypeDefault
classNamestring-

PaginationItem

The PaginationItem component represents one pagination link.

PropTypeDefault
classNamestring-
isCurrentboolean-

PaginationLabel

The PaginationLabel component renders pagination label text.

PropTypeDefault
classNamestring-

PaginationLast

The PaginationLast component links to the last page.

PropTypeDefault
classNamestring-

PaginationList

The PaginationList component groups pagination items.

PropTypeDefault
classNamestring-

PaginationNext

The PaginationNext component links to the next page.

PropTypeDefault
classNamestring-

PaginationPrevious

The PaginationPrevious component links to the previous page.

PropTypeDefault
classNamestring-

PaginationSection

The PaginationSection component groups pagination content.

PropTypeDefault
classNamestring-

PaginationSpacer

The PaginationSpacer component pushes pagination content apart.

PropTypeDefault
classNamestring-

See the React Aria for the full API reference.

Unlock the full power of
Intent UI Design

Build modern web apps faster with 1000+ resources across components, blocks, patterns, templates, and starter kits.

Learn more