Pagination
Pagination with page navigation, next and previous links.
import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious,} from "~/components/ui/pagination";
export default function PaginationDemo() { return ( <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> );}Installation
Usage
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>Composition
Use the following composition to build a Pagination:
Pagination└── PaginationContent ├── PaginationItem │ └── PaginationPrevious ├── PaginationItem │ └── PaginationLink ├── PaginationItem │ └── PaginationEllipsis └── PaginationItem └── PaginationNextSimple
A simple pagination with only page numbers.
import { Pagination, PaginationContent, PaginationItem, PaginationLink,} from "~/components/ui/pagination";
export default function PaginationSimple() { return ( <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> );}Icons Only
Use just the previous and next buttons without page numbers. This is useful for data tables with a rows per page selector.
import { Field, FieldLabel } from "~/components/ui/field";import { Pagination, PaginationContent, PaginationItem, PaginationNext, PaginationPrevious,} from "~/components/ui/pagination";import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from "~/components/ui/select";
const pageSizes = [10, 25, 50, 100];
export default function PaginationIconsOnly() { return ( <div class="flex items-center justify-between gap-4"> <Field orientation="horizontal" class="w-fit"> <FieldLabel for="select-rows-per-page">Rows per page</FieldLabel> <Select options={pageSizes} defaultValue={25} itemComponent={(props) => ( <SelectItem item={props.item}>{props.item.rawValue}</SelectItem> )} > <SelectTrigger class="w-20" id="select-rows-per-page"> <SelectValue<number>>{(state) => state.selectedOption()}</SelectValue> </SelectTrigger> <SelectContent /> </Select> </Field> <Pagination class="mx-0 w-auto"> <PaginationContent> <PaginationItem> <PaginationPrevious href="#" /> </PaginationItem> <PaginationItem> <PaginationNext href="#" /> </PaginationItem> </PaginationContent> </Pagination> </div> );}API Reference
Pagination
The root navigation element for the pagination controls. It renders a semantic <nav> with an accessible pagination label.
PaginationContent
The list that contains pagination items.
PaginationItem
An individual pagination list item.
PaginationLink
A page link. Set isActive to announce the current page with aria-current="page".
PaginationPrevious
A link to the previous page.
PaginationNext
A link to the next page.
PaginationEllipsis
An inaccessible visual indicator that more pages are available.
Pagination is a native Solid composition of semantic HTML elements, so it does not expose a Kobalte or Corvu primitive API.