Rendered from the shared Frontfriend stories with React Base, the same
preview Studio shows. Styling comes from your Design System; the code below
is native to Base UI.
Installation
Complete project setup first. Your configuration
must select react/base and include your Design System ID.
pnpm exec frontfriend download pagination -f react --primitive base
Review dependencies reported by the downloader and keep your source
changes in version control.
Usage
import {
Pagination,
PaginationContent,
PaginationItem,
PaginationPrevious,
PaginationLink,
PaginationNext,
} from "@/components/ui/pagination";
<Pagination>
<PaginationContent>
<PaginationItem>
<PaginationPrevious href="#" size="default" />
</PaginationItem>
<PaginationItem>
<PaginationLink
href="#"
size="default"
isActive
>
1
</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationNext href="#" size="default" />
</PaginationItem>
</PaginationContent>
</Pagination>;
Examples
Basic
import {
Pagination,
PaginationContent,
PaginationItem,
PaginationPrevious,
PaginationLink,
PaginationEllipsis,
PaginationNext,
} 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>;
Simple
import {
Pagination,
PaginationContent,
PaginationItem,
PaginationLink,
} from "@/components/ui/pagination";
<Pagination>
<PaginationContent>
<PaginationItem>
<PaginationLink href="#">1</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#" isActive>
2
</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#">3</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#">4</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#">5</PaginationLink>
</PaginationItem>
</PaginationContent>
</Pagination>;
With Select
import { Field, FieldLabel } from "@/components/ui/field";
import {
Select,
SelectTrigger,
SelectValue,
SelectContent,
SelectGroup,
SelectItem,
} from "@/components/ui/select";
import {
Pagination,
PaginationContent,
PaginationItem,
PaginationPrevious,
PaginationNext,
} from "@/components/ui/pagination";
<div className="flex items-center justify-between gap-4">
<Field orientation="horizontal" className="w-fit">
<FieldLabel htmlFor="select-rows-per-page">Rows per page</FieldLabel>
<Select defaultValue="25">
<SelectTrigger className="w-20" id="select-rows-per-page">
<SelectValue />
</SelectTrigger>
<SelectContent align="start">
<SelectGroup>
<SelectItem value="10">10</SelectItem>
<SelectItem value="25">25</SelectItem>
<SelectItem value="50">50</SelectItem>
<SelectItem value="100">100</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</Field>
<Pagination className="mx-0 w-auto">
<PaginationContent>
<PaginationItem>
<PaginationPrevious href="#" />
</PaginationItem>
<PaginationItem>
<PaginationNext href="#" />
</PaginationItem>
</PaginationContent>
</Pagination>
</div>;
API reference
Frontfriend-owned props. Native HTML and inherited primitive props
remain documented by Base UI.
PaginationFirst
| Prop | Type | Default | Description |
text | React.ReactNode | "First" | |
PaginationItem
| Prop | Type | Default | Description |
isActive | boolean | — | |
size | React.ComponentProps<typeof Button>["size"] | "icon" | |
PaginationLast
| Prop | Type | Default | Description |
text | React.ReactNode | "Last" | |
PaginationLink
| Prop | Type | Default | Description |
href | string | — | |
isActive | boolean | — | |
PaginationNext
| Prop | Type | Default | Description |
text | React.ReactNode | "Next" | |
PaginationPrevious
| Prop | Type | Default | Description |
text | React.ReactNode | "Previous" | |
Configuration determines the actual classes and available styling hooks.
See Theming & component configuration before introducing
a repeated local override.