default.tsx
1'use client';23import { Breadcrumb } from '@/components/ui/breadcrumb';45const items = [6 { label: 'Home', href: '/' },7 { label: 'Documentation', href: '/docs' },8 { label: 'Components', isPage: true },9];1011export function Default() {12 return (13 <Breadcrumb>14 <Breadcrumb.List>15 {items.map((item, index) => (16 <Breadcrumb.Item key={index}>17 {item.isPage ? (18 <Breadcrumb.Page>{item.label}</Breadcrumb.Page>19 ) : (20 <Breadcrumb.Link href={item.href}>{item.label}</Breadcrumb.Link>21 )}22 {index < items.length - 1 && <Breadcrumb.Separator />}23 </Breadcrumb.Item>24 ))}25 </Breadcrumb.List>26 </Breadcrumb>27 );28}
Instalación
pnpm dlx nachui add breadcrumbAnatomía
1import { Breadcrumb } from '@/components/ui/breadcrumb';
1<Breadcrumb>2 <Breadcrumb.List>3 <Breadcrumb.Item>4 <Breadcrumb.Link href="/">Inicio</Breadcrumb.Link>5 </Breadcrumb.Item>6 <Breadcrumb.Separator />7 <Breadcrumb.Item>8 <Breadcrumb.Link href="/docs">Documentación</Breadcrumb.Link>9 </Breadcrumb.Item>10 <Breadcrumb.Separator />11 <Breadcrumb.Item>12 <Breadcrumb.Page>Breadcrumb</Breadcrumb.Page>13 </Breadcrumb.Item>14 </Breadcrumb.List>15</Breadcrumb>
Variantes
Contraído (Collapsed)
collapsed.tsx
1'use client';23import { Breadcrumb } from '@/components/ui/breadcrumb';4import { DropdownMenu } from '@/components/ui/dropdown-menu';56export function Collapsed() {7 return (8 <Breadcrumb>9 <Breadcrumb.List>10 <Breadcrumb.Item>11 <Breadcrumb.Link href="/">Home</Breadcrumb.Link>12 </Breadcrumb.Item>13 <Breadcrumb.Separator />14 <Breadcrumb.Item>15 <DropdownMenu>16 <DropdownMenu.Trigger className="focus-visible:ring-ring flex items-center gap-1 focus-visible:ring-2 focus-visible:outline-none">17 <Breadcrumb.Ellipsis className="h-4 w-4" />18 <span className="sr-only">Toggle menu</span>19 </DropdownMenu.Trigger>20 <DropdownMenu.Content align="start">21 <DropdownMenu.Item>Documentation</DropdownMenu.Item>22 <DropdownMenu.Item>Themes</DropdownMenu.Item>23 <DropdownMenu.Item>GitHub</DropdownMenu.Item>24 </DropdownMenu.Content>25 </DropdownMenu>26 </Breadcrumb.Item>27 <Breadcrumb.Separator />28 <Breadcrumb.Item>29 <Breadcrumb.Link href="/docs/components">Components</Breadcrumb.Link>30 </Breadcrumb.Item>31 <Breadcrumb.Separator />32 <Breadcrumb.Item>33 <Breadcrumb.Page>Breadcrumb</Breadcrumb.Page>34 </Breadcrumb.Item>35 </Breadcrumb.List>36 </Breadcrumb>37 );38}
Separador personalizado
custom-separator.tsx
1'use client';23import { SlashIcon } from 'lucide-react';45import { Breadcrumb } from '@/components/ui/breadcrumb';67const crumbs = [8 { label: 'Home', href: '/' },9 { label: 'Components', href: '/components' },10 { label: 'Breadcrumb', href: null },11] as const;1213export function CustomSeparator() {14 return (15 <Breadcrumb>16 <Breadcrumb.List>17 {crumbs.map((crumb, index) => (18 <Breadcrumb.Item key={crumb.label}>19 {crumb.href ? (20 <Breadcrumb.Link href={crumb.href}>{crumb.label}</Breadcrumb.Link>21 ) : (22 <Breadcrumb.Page>{crumb.label}</Breadcrumb.Page>23 )}24 {index < crumbs.length - 1 && (25 <Breadcrumb.Separator>26 <SlashIcon className="h-3.5 w-3.5" />27 </Breadcrumb.Separator>28 )}29 </Breadcrumb.Item>30 ))}31 </Breadcrumb.List>32 </Breadcrumb>33 );34}
Referencia de API
Breadcrumb
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
className | string | - | Clases CSS adicionales |
Breadcrumb.List
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
className | string | - | Clases CSS adicionales |
Breadcrumb.Item
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
className | string | - | Clases CSS adicionales |
Breadcrumb.Link
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
href | string | - | URL a la que navegar |
className | string | - | Clases CSS adicionales |
Breadcrumb.Page
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
className | string | - | Clases CSS adicionales |
Breadcrumb.Separator
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
children | ReactNode | Icono de flecha | Elemento separador personalizado |
className | string | - | Clases CSS adicionales |
¿Encontraste algo que mejorar?
¿Notaste un error, tipografía o detalle faltante en esta página? Ayúdanos a mejorar la documentación abriendo un issue en GitHub.