import { Breadcrumbs } from "@cloudflare/kumo";
import { House } from "@phosphor-icons/react";
export function BreadcrumbsWithIconsDemo() {
return (
<Breadcrumbs>
<Breadcrumbs.Link href="#" icon={<House size={16} />}>
Home
</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Link href="#">Projects</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Current>Current Project</Breadcrumbs.Current>
</Breadcrumbs>
);
} Installation
import { Breadcrumbs } from "@cloudflare/kumo"; Usage
import { Breadcrumbs } from "@cloudflare/kumo";
export function BreadcrumbsDemo() {
return (
<Breadcrumbs>
<Breadcrumbs.Link href="#">Home</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Link href="#">Docs</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Current>Breadcrumbs</Breadcrumbs.Current>
</Breadcrumbs>
);
} Examples
Basic
import { Breadcrumbs } from "@cloudflare/kumo";
export function BreadcrumbsDemo() {
return (
<Breadcrumbs>
<Breadcrumbs.Link href="#">Home</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Link href="#">Docs</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Current>Breadcrumbs</Breadcrumbs.Current>
</Breadcrumbs>
);
} Loading
import { Breadcrumbs } from "@cloudflare/kumo";
import { House } from "@phosphor-icons/react";
export function BreadcrumbsLoadingDemo() {
return (
<Breadcrumbs>
<Breadcrumbs.Link href="#" icon={<House size={16} />}>
Home
</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Link href="#">Docs</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Current loading></Breadcrumbs.Current>
</Breadcrumbs>
);
} Root
import { Breadcrumbs } from "@cloudflare/kumo";
import { House } from "@phosphor-icons/react";
export function BreadcrumbsRootDemo() {
return (
<Breadcrumbs>
<Breadcrumbs.Current icon={<House size={16} />}>
Worker Analytics
</Breadcrumbs.Current>
</Breadcrumbs>
);
} Clipboard
import { Breadcrumbs } from "@cloudflare/kumo";
export function BreadcrumbsWithClipboardDemo() {
return (
<Breadcrumbs>
<Breadcrumbs.Link href="#">Home</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Current>Breadcrumbs</Breadcrumbs.Current>
<Breadcrumbs.Clipboard text="#" />
</Breadcrumbs>
);
} Localized labels
Breadcrumbs renders a navigation landmark. Use the labels prop to localize
the landmark name and clipboard copy text; don’t replace it with role="banner".
For one-off copy actions, pass labels directly to Breadcrumbs.Clipboard.
import { Breadcrumbs } from "@cloudflare/kumo";
export function BreadcrumbsLocalizedDemo() {
return (
<Breadcrumbs
labels={{
navigation: "Trilha de navegação",
copyAction: "Copiar",
copyTooltip: "Clique para copiar",
copiedFeedback: "Copiado",
}}
>
<Breadcrumbs.Link href="#">Início</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Link href="#">Documentação</Breadcrumbs.Link>
<Breadcrumbs.Separator />
<Breadcrumbs.Current>Navegação estrutural</Breadcrumbs.Current>
<Breadcrumbs.Clipboard text="#navegacao-estrutural" />
</Breadcrumbs>
);
} API Reference
Breadcrumbs
| Prop | Type | Default | Description |
|---|---|---|---|
| size | "sm" | "base" | "base" | Size of the breadcrumbs. - `"sm"` — Compact breadcrumbs for dense UIs - `"base"` — Default breadcrumbs size |
| children | ReactNode | - | - |
| className | string | - | Additional CSS classes merged via `cn()`. |
| labels | BreadcrumbsLabels | - | Accessible labels and clipboard text for i18n. |
Breadcrumbs.Link
| Prop | Type | Default |
|---|---|---|
| href* | string | - |
| icon | React.ReactNode | - |
Breadcrumbs.Current
| Prop | Type | Default |
|---|---|---|
| loading | boolean | - |
| icon | React.ReactNode | - |
Breadcrumbs.Separator
| Prop | Type | Default |
|---|
No component-specific props. Accepts standard HTML attributes.
Breadcrumbs.Clipboard
| Prop | Type | Default |
|---|---|---|
| text* | string | - |
| labels | BreadcrumbsClipboardLabels | - |