shadcn.io is not affiliated with official shadcn/ui
Installation
bunx --bun shadcn@latest add https://kit.dev/r/aria/pagination.jsonnpx shadcn@latest add https://kit.dev/r/aria/pagination.jsonpnpm dlx shadcn@latest add https://kit.dev/r/aria/pagination.jsonyarn shadcn@latest add https://kit.dev/r/aria/pagination.jsonThis component depends on Button. Install it first if you haven't already.
Install the following dependencies:
bun add react-aria-components lucide-reactnpm install react-aria-components lucide-reactpnpm add react-aria-components lucide-reactyarn add react-aria-components lucide-reactCopy and paste the following code into your project.
"use client";
import {
ChevronLeftIcon,
ChevronRightIcon,
MoreHorizontalIcon,
} from "lucide-react";
import type React from "react";
import { Link as LinkPrimitive } from "react-aria-components";
import { cn } from "@/lib/utils";
import { type Button, buttonVariants } from "@/registry/aria/components/button";
type PaginationLinkProps = {
isActive?: boolean;
} & Omit<React.ComponentProps<typeof LinkPrimitive>, "className"> &
Pick<React.ComponentProps<typeof Button>, "size"> & {
className?: string;
};Update the import paths to match your project setup.
Anatomy
Pagination
├── PaginationItem
├── PaginationEllipsis
├── PaginationFirstTrigger
├── PaginationPrevious
├── PaginationNext
└── PaginationLastTriggerUsage
import {
Pagination,
PaginationContent,
PaginationEllipsis,
PaginationItem,
PaginationLink,
PaginationNext,
PaginationPrevious,
} from "@/components/ui/pagination";<Pagination>
<PaginationContent>
<PaginationItem>
<PaginationPrevious href="#" />
</PaginationItem>
<PaginationItem>
<PaginationLink href="#">1</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#" isActive>
2
</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#">3</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationEllipsis />
</PaginationItem>
<PaginationItem>
<PaginationNext href="#" />
</PaginationItem>
</PaginationContent>
</Pagination>Accessibility
| Key | Description |
|---|---|
Enter | Activate the focused control. |
Space | Activate the focused control. |
Demos
Simple
A simple pagination with only page numbers.
Icons Only
Use just the previous and next buttons without page numbers. Useful for data tables with a rows per page selector.
Rtl
Right-to-left pagination. See the RTL configuration guide for document direction.
API Reference
Pagination
PropType
AttributeType
PaginationContent
PropType
AttributeType
PaginationItem
AttributeType
PaginationLink
PropType
AttributeType
PaginationPrevious
PropType
AttributeType
PaginationNext
PropType
AttributeType
PaginationEllipsis
PropType
AttributeType