This component no longer exists. It was in cubby-ui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-10 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Pagination
cubby-ui/paginationRemovedComponent
A pagination component.
Live preview
live · rendered by the registry
Rendered by cubby-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://cubby-ui.dev/r/pagination.jsonSource
1import * as React from "react";2import { cn } from "@/lib/utils";3import { Button, buttonVariants } from "@/registry/default/button/button";45import { HugeiconsIcon } from "@hugeicons/react";6import { ArrowLeft01Icon, ArrowRight01Icon, MoreHorizontalIcon } from "@hugeicons/core-free-icons";7function Pagination({ className, ...props }: React.ComponentProps<"nav">) {8 return (9 <nav10 role="navigation"11 aria-label="pagination"12 data-slot="pagination"13 className={cn("mx-auto flex w-full justify-center", className)}14 {...props}15 />16 );17}1819function PaginationContent({20 className,21 ...props22}: React.ComponentProps<"ul">) {23 return (24 <ul25 data-slot="pagination-content"26 className={cn("flex flex-row items-center gap-1", className)}27 {...props}28 />29 );30}3132function PaginationItem({ ...props }: React.ComponentProps<"li">) {33 return <li data-slot="pagination-item" {...props} />;34}3536type PaginationLinkProps = {37 isActive?: boolean;38 isDisabled?: boolean;39} & Pick<React.ComponentProps<typeof Button>, "size"> &40 React.ComponentProps<"a">;4142// Pagination links are real anchors styled with the flat `buttonVariants`43// recipe on purpose: rendering them through <Button render={<a/>}> would44// bolt button semantics (role="button", no Space navigation) onto elements45// that must stay links for screen readers.46function PaginationLink({47 className,48 isActive,49 isDisabled,50 size = "icon",51 ...props52}: PaginationLinkProps) {53 return (54 <a55 aria-current={isActive ? "page" : undefined}56 aria-disabled={isDisabled}57 data-slot="pagination-link"58 data-active={isActive}59 data-disabled={isDisabled}60 className={cn(61 buttonVariants({62 variant: isActive ? "outline" : "ghost",63 size,64 }),65 isDisabled && "pointer-events-none opacity-60",66 className,67 )}68 {...props}69 />70 );71}7273function PaginationPrevious({74 className,75 ...props76}: React.ComponentProps<typeof PaginationLink>) {77 return (78 <PaginationLink79 aria-label="Go to previous page"80 size="default"81 // pl-2.5 mirrors the Button's leading-icon optical padding, which the82 // flat recipe has no compound variants for.83 className={cn("gap-1.5 pl-2.5", className)}84 {...props}85 >86 <HugeiconsIcon icon={ArrowLeft01Icon} size={16} strokeWidth={2} />87// … truncated
What it pulls in
npm packages
Other registry items
