Breadcrumb
NavigationHierarchical navigation breadcrumb trail.
Preview
Usage
example.jsx
import { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage } from "@/components/ui/breadcrumb";
export default function Example() {
return <Breadcrumb />;
}Source Code
Copy this file into components/ui/breadcrumb.jsx in your project.
breadcrumb.jsx
import { forwardRef } from "react";
import { cn } from "@/lib/utils";
const Breadcrumb = forwardRef(({ className, ...props }, ref) => (
<nav ref={ref} aria-label="breadcrumb" className={cn(className)} {...props} />
));
Breadcrumb.displayName = "Breadcrumb";
const BreadcrumbList = forwardRef(({ className, ...props }, ref) => (
<ol ref={ref} className={cn("flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground", className)} {...props} />
));
BreadcrumbList.displayName = "BreadcrumbList";
const BreadcrumbItem = forwardRef(({ className, ...props }, ref) => (
<li ref={ref} className={cn("inline-flex items-center gap-1.5", className)} {...props} />
));
BreadcrumbItem.displayName = "BreadcrumbItem";
const BreadcrumbLink = forwardRef(({ className, ...props }, ref) => (
<a ref={ref} className={cn("font-medium text-foreground transition-colors hover:text-primary", className)} {...props} />
));
BreadcrumbLink.displayName = "BreadcrumbLink";
const BreadcrumbSeparator = ({ className, children, ...props }) => (
<li role="presentation" className={cn("text-muted-foreground", className)} {...props}>
{children || <svg className="h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" /></svg>}
</li>
);
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
const BreadcrumbPage = forwardRef(({ className, ...props }, ref) => (
<span ref={ref} aria-current="page" className={cn("font-normal text-muted-foreground", className)} {...props} />
));
BreadcrumbPage.displayName = "BreadcrumbPage";
export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage };
Quick Install
Make sure you have the cn() utility set up. It requires clsx and tailwind-merge.
npm install clsx tailwind-merge