Breadcrumb
rivelle/breadcrumbFreeComponent
Server-safe hierarchical navigation with composable separators.
Live preview
live · rendered by the registry
Rendered by rivelle on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://rivelle.dev/r/breadcrumb.jsonSource
1import * as React from "react"2import { Slot } from "@radix-ui/react-slot"3import { ChevronRight, MoreHorizontal } from "lucide-react"45import { cn } from "@/lib/utils"67function Breadcrumb({ ...props }: React.ComponentProps<"nav">) {8 return <nav aria-label="breadcrumb" data-slot="breadcrumb" {...props} />9}1011function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) {12 return <ol data-slot="breadcrumb-list" className={cn("flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground sm:gap-2.5", className)} {...props} />13}1415function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">) {16 return <li data-slot="breadcrumb-item" className={cn("inline-flex items-center gap-1.5", className)} {...props} />17}1819function BreadcrumbLink({ asChild, className, ...props }: React.ComponentProps<"a"> & { asChild?: boolean }) {20 const Comp = asChild ? Slot : "a"21 return <Comp data-slot="breadcrumb-link" className={cn("rounded-md outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/45", className)} {...props} />22}2324function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">) {25 return <span aria-current="page" aria-disabled="true" data-slot="breadcrumb-page" className={cn("font-semibold text-foreground", className)} {...props} />26}2728function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">) {29 return <li aria-hidden="true" data-slot="breadcrumb-separator" className={cn("text-foreground/25 [&>svg]:size-3.5", className)} {...props}>{children ?? <ChevronRight />}</li>30}3132function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">) {33 return <span aria-hidden="true" data-slot="breadcrumb-ellipsis" className={cn("grid size-8 place-items-center rounded-lg bg-foreground/[.045]", className)} {...props}><MoreHorizontal className="size-4" /><span className="sr-only">More</span></span>34}3536export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator }
What it pulls in
npm packages
Other registry items
Files it writes
More from rivelle
All 83 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | rivelle | Components | Free | 2 deps | |
| Alertalert | rivelle | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | rivelle | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | rivelle | Components | Free | 1 dep | |
| Avataravatar | rivelle | Components | Free | 1 dep | |
| Badgebadge | rivelle | Components | Free | 2 deps | |
| Buttonbutton | rivelle | Components | Free | 2 deps | |
| Button Groupbutton-group | rivelle | Components | Free | no deps |
