breadcrumbs
uiBreadcrumb navigation showing the current page path. Uses getBreadcrumbs() from @document0/core.
document0/breadcrumbs•v0.1.0•react, next
Preview
Installation
$npx @document0/cli add document0/breadcrumbs
Usage
import { Breadcrumbs } from "./components/document0/breadcrumbs";
// Example usage in your layout or page:
<Breadcrumbs />Source
After installation, this lives at components/document0/breadcrumbs/Breadcrumbs.tsx and you can modify it however you like.
import Link from "next/link";
import type { BreadcrumbItem } from "@document0/core";
/**
* Breadcrumb navigation showing current page path.
*
* Usage:
* ```tsx
* import { Breadcrumbs } from "@/components/document0/breadcrumbs/Breadcrumbs";
* import { getBreadcrumbs } from "@document0/core";
*
* // In your page component:
* const tree = getPageTree();
* const breadcrumbs = getBreadcrumbs(tree, page.url);
*
* return <Breadcrumbs items={breadcrumbs} />;
* ```
*/
export function Breadcrumbs({ items }: { items: BreadcrumbItem[] }) {
if (items.length <= 1) return null;
return (
<nav aria-label="Breadcrumb" className="mb-4">
<ol className="flex flex-wrap items-center gap-1.5 text-sm text-zinc-500">
{items.map((item, i) => (
<li key={i} className="flex items-center gap-1.5">
{i > 0 && <span className="text-zinc-700">/</span>}
{i < items.length - 1 && item.url ? (
<Link href={item.url} className="hover:text-zinc-300 transition-colors">
{item.name}
</Link>
) : (
<span className="text-zinc-400">{item.name}</span>
)}
</li>
))}
</ol>
</nav>
);
}
Tags
navigationbreadcrumbsreact