Skip to content

Breadcrumb

A neo-brutalist breadcrumb navigation component built on Reka UI's breadcrumb primitives, suitable for displaying multi-level page trees, especially as a standard navigation element in complex nested scenarios such as admin dashboards.

Demo

Preview

Installation

pnpm dlx brutx-vue@latest add breadcrumb

Usage

vue
<script setup>
import {
    Breadcrumb,
    BreadcrumbList,
    BreadcrumbItem,
    BreadcrumbLink,
    BreadcrumbPage,
    BreadcrumbSeparator,
    BreadcrumbEllipsis
} from 'brutx-ui-vue'
</script>

<template>
    <Breadcrumb>
        <BreadcrumbList>
            <BreadcrumbItem>
                <BreadcrumbLink href="/">Home</BreadcrumbLink>
            </BreadcrumbItem>
            <BreadcrumbSeparator />
            <BreadcrumbItem>
                <BreadcrumbLink href="/components">Components</BreadcrumbLink>
            </BreadcrumbItem>
            <BreadcrumbSeparator />
            <BreadcrumbItem>
                <BreadcrumbPage>Breadcrumb</BreadcrumbPage>
            </BreadcrumbItem>
        </BreadcrumbList>
    </Breadcrumb>
</template>

Collapsed Ellipsis

When there are many page levels, use BreadcrumbEllipsis to collapse less important intermediate pages.

vue
<template>
    <Breadcrumb>
        <BreadcrumbList>
            <BreadcrumbItem>
                <BreadcrumbLink href="#">Home</BreadcrumbLink>
            </BreadcrumbItem>
            <BreadcrumbSeparator />
            <BreadcrumbItem>
                <!-- Collapsed ellipsis button -->
                <BreadcrumbEllipsis />
            </BreadcrumbItem>
            <BreadcrumbSeparator />
            <BreadcrumbItem>
                <BreadcrumbPage>Current Page</BreadcrumbPage>
            </BreadcrumbItem>
        </BreadcrumbList>
    </Breadcrumb>
</template>

Sub-components

ComponentDescription
BreadcrumbRoot container
BreadcrumbListBreadcrumb list container
BreadcrumbItemSingle breadcrumb item container
BreadcrumbLinkClickable link item
BreadcrumbPageCurrent page indicator (non-clickable)
BreadcrumbSeparatorSeparator, renders a forward slash / by default
BreadcrumbEllipsisEllipsis button for collapsing intermediate levels

Props

PropTypeDefaultDescription
classstringCustom style class
PropTypeDefaultDescription
classstringCustom style class
PropTypeDefaultDescription
classstringCustom style class
PropTypeDefaultDescription
asstring'a'Rendered HTML tag, such as 'a', 'button', etc.
asChildbooleanfalseWhether to enable Reka UI's asChild, for use with Vue-Router's <router-link> rendering
classstringCustom style class
PropTypeDefaultDescription
classstringCustom style class
PropTypeDefaultDescription
classstringCustom style class
PropTypeDefaultDescription
iconSizeIconSize'default'Icon size, supports IconSize enum values
classstringCustom style class

Slots

SlotScopeDescription
defaultRenders a forward slash / by default; you can place a custom small icon component inside
SlotScopeDescription
defaultRenders the MoreHorizontal icon by default; you can place a custom ellipsis icon component inside

Accessibility

  • Keyboard operation: Link items support Tab key navigation and Enter key activation
  • ARIA attributes: Automatically adds aria-label="Breadcrumb" to the navigation container and aria-current="page" to identify the current page
  • Semantic structure: Wrapped in a <nav> element with an <ol> list structure conforming to the WAI-ARIA breadcrumb specification

Brute force builds.