Skip to content

CdsBreadcrumbs

Хлебные крошки показывают путь до текущей страницы в иерархии разделов и возвращают на любой уровень выше одним кликом. Список собирается из массива items или вручную — из CdsBreadcrumbsItem и CdsBreadcrumbsDivider.

Storybook GitLab Figma
Покрытие тестами: 100% — хорошее покрытие
API в спеках
35 / 35 пропсы, события, слоты и exposed, у которых есть тест
Тест-кейсы
55 юнит · 0 браузерных
Известные баги
8 зафиксированы тестом it.fails
Покрытие кода
100% строк · 96.9% ветвей замер v4.0.0-alpha.13
A11y (axe)
8 рекомендаций в 9 историях замер v4.0.0-alpha.11

Для переключения разделов одного уровня подойдёт CdsTabs, для перехода, оформленного как текст в абзаце, — CdsLink, а для движения по шагам процесса — CdsSteps.

Анатомия ​

Хлебные крошки — список ul, в котором ссылки на уровни иерархии перемежаются разделителями. Последний элемент обозначает текущую страницу и не кликается, а перед списком можно вывести иконку.

Вариации ​

Элементы ​

Массив items собирает крошки автоматически: строка превращается в текст, объект — в ссылку с href или to. Последний элемент компонент сам помечает текущей страницей: отключает ссылку и красит в нейтральный цвет.

Sandbox Storybook

Разделитель ​

По умолчанию элементы разделяет /. Проп divider заменяет символ, а слот divider — разметку целиком, например на иконку-шеврон.

Sandbox Storybook

Иконка ​

Проп icon выводит иконку перед списком — например, знак корневого раздела. Слот prepend заменяет её произвольным контентом.

Sandbox Storybook

Слоты ​

Слоты переопределяют части списка, не отказываясь от автоматической сборки через items. Слоты title, divider и item получают item и index — контент можно менять для каждого элемента отдельно.

СлотОписание
prependКонтент перед списком. Замещает иконку из icon
titleТекст элемента — общий шаблон для всех элементов
dividerКонтент разделителя. Замещает символ из divider
itemЭлемент целиком — своя разметка вместо CdsBreadcrumbsItem
defaultКонтент после элементов из items; используется при ручной сборке
Sandbox Storybook

Ручная сборка ​

Когда путь не описывается плоским массивом — нужны свои обработчики или нестандартные элементы, — соберите список в слоте default из CdsBreadcrumbsItem и CdsBreadcrumbsDivider. Текущую страницу пометьте disabled, а длинное название ограничьте max-width — текст обрежется многоточием.

Sandbox Storybook

Рекомендации ​

Сценарии использования ​

Навигация по разделам ​

Крошки ведут пользователя по дереву каталога: ссылки в списке открывают разделы глубже, клик по крошке возвращает на уровень выше. В приложении с vue-router вместо обработчиков передайте элементам to — переход и активное состояние ссылки отработают автоматически.

Sandbox Storybook

Длинный путь ​

Глубокую иерархию сверните до первого уровня, многоточия и двух последних шагов — путь остаётся в одну строку. Клик по многоточию раскрывает полный список.

Sandbox Storybook

API ​

CdsBreadcrumbs ​

Пропсы

ИмяТипПо умолчаниюОписание
activeClassstring | undefined—Класс, применяемый к компоненту, когда он находится в активном состоянии
activeColorstring | undefined—Цвет компонента, когда он находится в активном состоянии
baseColorstring | undefined—Цвет неактивного компонента
bgColorstring | undefined—Цвет фона компонента
colorstring | undefined—Цвет компонента
disabledboolean | null | undefinednullЗаблокированное состояние
dividerstring | undefined'/'Разделитель между дочерними компонентами
iconIconValue | undefined—Иконка отображаемая рядом с компонентом
itemsreadonly BreadcrumbItem[] | undefined[]Массив строк или объектов, используемый для автоматического создания дочерних компонентов
tagstring | JSXComponent<any> | undefined'ul'Пользовательский HTML-тег для отображения
textColorstring | undefined—Цвет текста компонента

Слоты

ИмяТипОписание
defaultanyКонтент по-умолчанию
divider{ item: BreadcrumbItem; index: number; }Контент разделителя между элементами, который может быть переопределён для каждого элемента
item{ item: InternalBreadcrumbItem; index: number; }Контент элемента, который может быть переопределён для каждого элемента
prependanyКонтент в начале
title{ item: InternalBreadcrumbItem; index: number; }Контент внутри каждого элемента, который может быть переопределён для каждого элемента

CdsBreadcrumbsDivider ​

Пропсы

ИмяТипПо умолчаниюОписание
dividerstring | number | undefined—Разделитель

Слоты

ИмяТипОписание
defaultanyКонтент по-умолчанию

CdsBreadcrumbsItem ​

Пропсы

ИмяТипПо умолчаниюОписание
activeboolean | undefined—Активное состояние компонента, обычно используется для обозначения текущей страницы в навигации
activeClassstring | undefined—Класс, применяемый к компоненту, когда он находится в активном состоянии
activeColorstring | undefined—Цвет компонента, когда он находится в активном состоянии
baseColorstring | undefined—Цвет неактивного компонента
bgColorstring | undefined—Цвет фона компонента
colorstring | undefined—Цвет компонента
disabledboolean | null | undefinednullЗаблокированное состояние
exactboolean | undefined—Если true, активное состояние будет применяться только при точном совпадении маршрута
hrefstring | undefined—Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка
maxWidthstring | number | undefined—Максимальная ширина компонента
replaceboolean | undefined—Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой
tagstring | JSXComponent<any> | undefined'li'Пользовательский HTML-тег для отображения
textColorstring | undefined—Цвет текста компонента
titlestring | undefined—Заголовок элемента, отображаемый в компоненте
toLinkTo | undefined—Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink
widthstring | number | undefined—Ширина компонента

Слоты

ИмяТипОписание
defaultanyКонтент по-умолчанию