Breadcrumbs
Breadcrumbs — составной компонент хлебных крошек: клик по крошке открывает popover со смежными пунктами её уровня, переход — выбором пункта.
Breadcrumbs.Root выстраивает содержимое в строку, части внутри него свободно комбинируются: крошка-текст — Breadcrumbs.Item, крошка с popover — Breadcrumbs.Menu c парой Breadcrumbs.Trigger + Breadcrumbs.Popover. Внутри крошки любого вида — Breadcrumbs.Icon и Breadcrumbs.Label, разделители между крошками расставляются вручную (Breadcrumbs.Separator).
Компонент презентационный — контент popover (обычно список MenuItemButton) и его данные задаёт потребитель; popover монтируется лениво при открытии, так что данные можно загружать внутри него.
Использует: ScrollArea
Анатомия
Примеры
Только текст
Крошки без popover — некликабельный текст с разделителями; иконки опциональны.
Два popover
Popover может быть у любого числа крошек — каждая открывает смежные пункты своего уровня и меняется независимо.
Длинный список
Высота popover ограничена — длинный список смежных пунктов скроллится внутри (ScrollArea уже встроена в Breadcrumbs.Popover, потребителю ничего делать не нужно).
API
| Prop | Type | Default |
|---|---|---|
children*Крошки и разделители между ними слева направо | ReactNode | - |
Breadcrumbs.Item
Крошка-текст без popover.
| Prop | Type | Default |
|---|---|---|
children*Содержимое крошки — | ReactNode | - |
Breadcrumbs.Menu
Крошка с popover: связывает триггер и панель, собственной разметки не даёт.
| Prop | Type | Default |
|---|---|---|
children*Крошка-триггер ( | ReactNode | - |
Breadcrumbs.Trigger
Крошка-триггер — кнопка, открывающая popover своего Breadcrumbs.Menu.
| Prop | Type | Default |
|---|---|---|
children*Содержимое крошки — | ReactNode | - |
Breadcrumbs.Popover
Панель со смежными пунктами уровня крошки; монтируется лениво при открытии, длинный список скроллится внутри.
| Prop | Type | Default |
|---|---|---|
children*Смежные пункты уровня крошки (обычно список | ReactNode | - |
Breadcrumbs.Icon
Иконка рядом с текстом крошки — масштабируется вместе с ним и не сжимается.
| Prop | Type | Default |
|---|---|---|
children*Иконка рядом с текстом крошки | ReactNode | - |
Breadcrumbs.Label
Текст крошки; обрезается многоточием, если не влезает.
| Prop | Type | Default |
|---|---|---|
children*Текст крошки — обрезается многоточием, если не влезает | ReactNode | - |
Breadcrumbs.Separator
Разделитель между соседними крошками.
Компонент не принимает пропсов.