About
Breadcrumb navigation with icons, collapsed middle paths and an overflow dropdown for deep hierarchies. Use it in file browsers, docs and admin dashboards.
Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Breadcrumb to your project and fits it to your theme.
Code
How Breadcrumb is used: the demo's code. The component's own source comes with a free account.
Usage.tsx
"use client";
import * as React from "react";
import { IconFolder, IconHome, IconFile } from "@tabler/icons-react";
import { Breadcrumb, BreadcrumbItem } from "@/components/ui/breadcrumb";
import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
const primitivePreviewCardSurfaceFrameClass = cn(
"relative isolate overflow-hidden rounded-2xl",
"border",
);
const primitivePreviewCardSurfaceLightClass = cn(
"border-black/[0.08] bg-[#f4f4f5]",
"[box-shadow:0_1px_2px_rgba(0,0,0,.06),0_8px_24px_-12px_rgba(0,0,0,.08)]",
);
const primitivePreviewCardSurfaceClass = cn(
primitivePreviewCardSurfaceFrameClass,
primitivePreviewCardSurfaceLightClass,
// Full static `dark:bg-[#0a0a0b]` kept for Tailwind content scan - same as
// PRIMITIVE_PREVIEW_CANVAS_DARK_BG / PRIMITIVE_PREVIEW_CANVAS_DARK.
"dark:border-white/[0.06] dark:bg-[#0a0a0b] dark:[box-shadow:0_1px_2px_rgba(0,0,0,.4),0_8px_24px_-12px_rgba(0,0,0,.6)]",
);
const wensityCardSurfaceClass = primitivePreviewCardSurfaceClass;
function PreviewPanel({
children,
className,
title,
subtitle,
}: {
children: React.ReactNode;
className?: string;
title?: string;
subtitle?: string;
}) {
return (
<div
className={cn(
wensityCardSurfaceClass,
"w-full max-w-lg p-5 sm:p-6",
className,
)}
>
{title ? (
<div className="mb-5 border-b border-[var(--border)] pb-4">
<p className="text-sm font-semibold tracking-[-0.015em] text-[var(--foreground)]">
{title}
</p>
{subtitle ? (
<p className="mt-1 text-[12px] leading-[1.5] text-[var(--muted-foreground)]">
{subtitle}
</p>
) : null}
</div>
) : null}
{children}
</div>
);
}
/* ── Main Preview ─────────────────────────────────────────── */
export function BreadcrumbPreview() {
return (
<PreviewPanel
title="Breadcrumb"
subtitle="Wayfinding trail with hover underline animations and smart collapsing."
>
<div className="space-y-6">
{/* Default */}
<div>
<p className="mb-3 text-xs font-semibold text-[var(--muted-foreground)] opacity-60">
Default
</p>
<Breadcrumb variant="default">
<BreadcrumbItem href="#">Home</BreadcrumbItem>
<BreadcrumbItem href="#">Projects</BreadcrumbItem>
<BreadcrumbItem href="#">Wensity</BreadcrumbItem>
<BreadcrumbItem isCurrentPage>Settings</BreadcrumbItem>
</Breadcrumb>
</div>
{/* With Icons */}
<div>
<p className="mb-3 text-xs font-semibold text-[var(--muted-foreground)] opacity-60">
With Icons
</p>
<Breadcrumb variant="with-icons">
<BreadcrumbItem href="#" icon={<IconHome />}>
Home
</BreadcrumbItem>
<BreadcrumbItem href="#" icon={<IconFolder />}>
Documents
</BreadcrumbItem>
<BreadcrumbItem isCurrentPage icon={<IconFile />}>
report.pdf
</BreadcrumbItem>
</Breadcrumb>
</div>
{/* Collapsed */}
<div>
<p className="mb-3 text-xs font-semibold text-[var(--muted-foreground)] opacity-60">
Collapsed
</p>
<Breadcrumb variant="collapsed" maxItems={3}>
<BreadcrumbItem href="#">Home</BreadcrumbItem>
<BreadcrumbItem href="#">Projects</BreadcrumbItem>
<BreadcrumbItem href="#">Wensity</BreadcrumbItem>
<BreadcrumbItem href="#">Settings</BreadcrumbItem>
<BreadcrumbItem href="#">Integrations</BreadcrumbItem>
<BreadcrumbItem isCurrentPage>OAuth</BreadcrumbItem>
</Breadcrumb>
</div>
{/* Dropdown */}
<div>
<p className="mb-3 text-xs font-semibold text-[var(--muted-foreground)] opacity-60">
Dropdown
</p>
<Breadcrumb variant="dropdown" maxItems={3}>
<BreadcrumbItem href="#">Home</BreadcrumbItem>
<BreadcrumbItem href="#">Projects</BreadcrumbItem>
<BreadcrumbItem href="#">Wensity</BreadcrumbItem>
<BreadcrumbItem href="#">Settings</BreadcrumbItem>
<BreadcrumbItem isCurrentPage>API Keys</BreadcrumbItem>
</Breadcrumb>
</div>
</div>
</PreviewPanel>
);
}
/* ── Card Preview (compact) ──────────────────────────────────── */
/* ── Example: Default ────────────────────────────────────── */
/* ── Example: With Icons ──────────────────────────────────── */
/* ── Example: Collapsed ───────────────────────────────────── */
/* ── Example: Dropdown ────────────────────────────────────── */
/* ── Example: Custom Separator ────────────────────────────── */
export default function Demo() {
return <BreadcrumbPreview />;
}
















