Breadcrumbs

showRoot
maxItems
import {Breadcrumbs} from '@gravity-ui/uikit';

Breadcrumbs (хлебные крошки) — это навигационный элемент, показывающий текущее расположение страницы в иерархии веб-сайта. Он содержит ссылки, позволяющие пользователю вернуться на более высокие уровни иерархии, что упрощает навигацию по многоуровневым сайтам. Хлебные крошки незаменимы для крупных веб-сайтов и приложений с иерархической структурой страниц.

Пример

  1. Region
  2. Country
  3. City
  4. District
  5. Street
<Breadcrumbs>
    <Breadcrumbs.Item>Region</Breadcrumbs.Item>
    <Breadcrumbs.Item>Country</Breadcrumbs.Item>
    <Breadcrumbs.Item>City</Breadcrumbs.Item>
    <Breadcrumbs.Item>District</Breadcrumbs.Item>
    <Breadcrumbs.Item>Street</Breadcrumbs.Item>
</Breadcrumbs>

События

Используйте свойство onAction как обратный вызов для обработки событий клика по элементам.

  1. Region
  2. Country
  3. City
  4. District
  5. Street
<Breadcrumbs onAction={(id) => alert(id)}>
    <Breadcrumbs.Item key={1}>Region</Breadcrumbs.Item>
    <Breadcrumbs.Item key={2}>Country</Breadcrumbs.Item>
    <Breadcrumbs.Item key={3}>City</Breadcrumbs.Item>
    <Breadcrumbs.Item key={4}>District</Breadcrumbs.Item>
    <Breadcrumbs.Item key={5}>Street</Breadcrumbs.Item>
</Breadcrumbs>

Ссылки

В компоненте Breadcrumbs клик по элементу обычно вызывает onAction. Однако вы также можете использовать его в качестве ссылки на другую страницу или сайт. Для этого добавьте свойство href в компонент <Breadcrumbs.Item>:

<Breadcrumbs>
    <Breadcrumbs.Item href="/">Home</Breadcrumbs.Item>
    <Breadcrumbs.Item href="/components">Components</Breadcrumbs.Item>
    <Breadcrumbs.Item href="/components/uikit/breadcrumbs">Breadcrumbs</Breadcrumbs.Item>
</Breadcrumbs>

Корневой контекст

Для лучшего понимания пользователем общей структуры некоторые приложения всегда отображают начальную точку (корневой элемент) хлебных крошек, даже если другие элементы скрыты из-за ограничений пространства.

  1. Home
  2. Trendy
  3. March 2020 Assets
  4. Winter
  5. Holiday
<Box overflow="hidden" width={200}>
    <Breadcrumbs showRoot>
        <Breadcrumbs.Item key="home">Home</Breadcrumbs.Item>
        <Breadcrumbs.Item key="trendy">Trendy</Breadcrumbs.Item>
        <Breadcrumbs.Item key="2020 assets">March 2020 Assets</Breadcrumbs.Item>
        <Breadcrumbs.Item key="winter">Winter</Breadcrumbs.Item>
        <Breadcrumbs.Item key="holiday">Holiday</Breadcrumbs.Item>
    </Breadcrumbs>
</Box>

Разделитель

  1. Region
  2. Country
  3. City
  4. District
  5. Street
<Breadcrumbs separator=">">
    <Breadcrumbs.Item>Region</Breadcrumbs.Item>
    <Breadcrumbs.Item>Country</Breadcrumbs.Item>
    <Breadcrumbs.Item>City</Breadcrumbs.Item>
    <Breadcrumbs.Item>District</Breadcrumbs.Item>
    <Breadcrumbs.Item>Street</Breadcrumbs.Item>
</Breadcrumbs>

Хлебные крошки с иконками

  1. uikit
  2. components
  3. Breadcrumbs
<Breadcrumbs>
  <Breadcrumbs.Item>
    <Flex alignItems="center" gap={1}>
      <House /> uikit
    </Flex>
  </Breadcrumbs.Item>
  <Breadcrumbs.Item>
    <Flex alignItems="center" gap={1}>
      <Flame /> components
    </Flex>
  </Breadcrumbs.Item>
  <Breadcrumbs.Item>
    <Flex alignItems="center" gap={1}>
      <Rocket style={{minWidth: 16}} />
      <Text ellipsis variant="inherit">
        Breadcrumbs
      </Text>
    </Flex>
  </Breadcrumbs.Item>
</Breadcrumbs>

Интеграция с роутерами

Области навигации

Когда хлебные крошки используются в качестве основного навигационного элемента на странице, их можно поместить в область навигации. Такие области помогают пользователям вспомогательных технологий быстро находить основные разделы страницы. Для создания области навигации поместите хлебные крошки внутрь элемента <nav> с атрибутом aria-label:

<nav aria-label="Breadcrumbs">
  <Breadcrumbs>
      <Breadcrumbs.Item href="/">Home</Breadcrumbs.Item>
      <Breadcrumbs.Item href="/components">Components</Breadcrumbs.Item>
      <Breadcrumbs.Item href="/components/uikit/breadcrumbs">Breadcrumbs</Breadcrumbs.Item>
  </Breadcrumbs>
</nav>

Неактивные элементы

<Breadcrumbs>
    <Breadcrumbs.Item href="#Region">Region</Breadcrumbs.Item>
    <Breadcrumbs.Item href="#Country" disabled>
        Country
    </Breadcrumbs.Item>
    <Breadcrumbs.Item href="#City">City</Breadcrumbs.Item>
    <Breadcrumbs.Item href="#District">District</Breadcrumbs.Item>
    <Breadcrumbs.Item href="#Street" disabled>
        Street
    </Breadcrumbs.Item>
</Breadcrumbs>

Пользовательский контент после последней крошки

  1. Region
  2. Country
  3. City
  4. District
  5. Street
<Breadcrumbs endContent={<div style={{paddingInlineStart: 4}}><Button>Push</Button></div>}>
    <Breadcrumbs.Item>Region</Breadcrumbs.Item>
    <Breadcrumbs.Item>Country</Breadcrumbs.Item>
    <Breadcrumbs.Item>City</Breadcrumbs.Item>
    <Breadcrumbs.Item>District</Breadcrumbs.Item>
    <Breadcrumbs.Item>Street</Breadcrumbs.Item>
</Breadcrumbs>

Свойства

ИмяОписаниеТипЗначение по умолчанию
childrenЭлементы хлебных крошек.React.ReactElement<BreadcrumbsItemProps>
disabledОпределяет, отключен ли компонент Breadcrumbs.boolean
showRootВключает или отключает постоянное отображение корневого элемента при свернутом состоянии его дочерних элементов.boolean
popupPlacementРасположение всплывающего окна для свернутых элементов.PopupPlacement
popupStyleСтиль всплывающего окна для свернутых элементов."staircase"
qaHTML-атрибут data-qa, используется для тестирования.string
separatorПользовательский разделитель элементов.React.ReactNode"/"
actionОбработчик события click.(id: Key) => void
idУникальный идентификатор элемента.string
classNameИмя CSS-класса элемента.string
styleЗадает инлайн-стиль для элемента.CSSProperties
aria-labelОпределяет строковое значение, используемое в качестве метки для текущего элемента.string
aria-labelledbyОпределяет элементы, используемые в качестве метки для текущего элемента.string
aria-describedbyОпределяет элементы, описывающие объект.string
endContentПользовательский контент после последней крошки.React.ReactNode
ИмяОписаниеТипЗначение по умолчанию
childrenСодержимое хлебных крошек.string
titleСтроковое представление содержимого элемента.string
aria-labelМетка доступности элемента.string
hrefURL-адрес гиперссылки.string
targetЦелевое окно для ссылки.React.HTMLAttributeAnchorTarget
relОпределяет отношение между связанным ресурсом и текущей страницей.string
disabledОпределяет можно ли взаимодействовать с элементом.boolean