frontend/src/components/ui/Rocket/Breadcrumb/Breadcrumb.spec.md
Navigation breadcrumb trail showing the user's current location within a hierarchy. Compound component (Shape E) wrapping shadcn breadcrumb primitives. No variants, no sizes — one consistent visual treatment.
| Sub-component | shadcn base | Rocket wrapper? | Notes |
|---|---|---|---|
| Breadcrumb | Breadcrumb (nav) | Re-export | Structural root, no styling needed |
| BreadcrumbList | BreadcrumbList (ol) | Yes | Token-styled container |
| BreadcrumbItem | BreadcrumbItem (li) | Re-export | Structural wrapper, no styling needed |
| BreadcrumbLink | BreadcrumbLink (a/Slot) | Yes | Styled link with hover/disabled states |
| BreadcrumbPage | BreadcrumbPage (span) | Yes | Current page — distinct styling |
| BreadcrumbSeparator | BreadcrumbSeparator (li) | Yes | Separator icon with token color |
| BreadcrumbEllipsis | BreadcrumbEllipsis (span) | Yes | Collapsed items indicator |
| Prop | Type | Values | Default |
|---|---|---|---|
| asChild | boolean | — | false |
| disabled | boolean | — | false |
| Prop | Type | Values | Default |
|---|---|---|---|
| children | ReactNode | custom separator icon | ChevronRightIcon |
| Prop | Type | Values | Default |
|---|---|---|---|
| children | ReactNode | custom ellipsis content | MoreHorizontalIcon |
| State | Applies to | Behaviour |
|---|---|---|
| default | BreadcrumbLink | Normal link appearance |
| hover | BreadcrumbLink | Text darkens to text-default |
| disabled | BreadcrumbLink | Reduced opacity, no pointer events |
| current (page) | BreadcrumbPage | Non-interactive, text-default, font-medium |
| Element | State | ToolJet token | Tailwind class |
|---|---|---|---|
| link text | default | text-placeholder | tw-text-text-placeholder |
| link text | hover | text-default | hover:tw-text-text-default |
| link text | disabled | text-disabled | tw-text-text-disabled |
| page text | current | text-default | tw-text-text-default |
| page text | current | font-title-small | tw-font-title-small |
| separator icon | default | icon-default | tw-text-icon-default |
| ellipsis icon | default | icon-default | tw-text-icon-default |
| ellipsis container | hover | interactive-hover | hover:tw-bg-interactive-hover |
| list container | — | font-body-small | tw-font-body-small tw-gap-1.5 tw-flex-wrap |
ReactNode) — custom separator icon, defaults to ChevronRightIconReactNode) — custom ellipsis content, defaults to MoreHorizontalIconShape E — compound/multi-part
cn() with ToolJet token classestw-font-body-small (11px/16px, regular) for links and tw-font-title-small (11px/16px, medium) for current page — uses typography plugin tokens, never manual font combosasChild via shadcn's Slot — allows wrapping React Router <Link> etc.tw-border-solid not needed — no borders in this component