Breadcrumb

Lockness UI Component

DOCUMENTATION

Breadcrumb

Documentation for the Breadcrumb component.

Installation

bash
deno run -A jsr:@lockness/ui add breadcrumb

Usage

tsx
import {
  Breadcrumb,
  BreadcrumbList,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbPage,
  BreadcrumbSeparator
} from '@lockness/ui/components'

<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem>
      <BreadcrumbLink href="/">Home</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbLink href="/docs">Docs</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbPage>Current Page</BreadcrumbPage>
    </BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>

Props

Breadcrumb

PropTypeDefaultDescription
childrenunknown-Breadcrumb items
classstring-Additional CSS class names

BreadcrumbList

PropTypeDefaultDescription
childrenunknown-List items
classstring-Additional CSS class names

BreadcrumbItem

PropTypeDefaultDescription
childrenunknown-Item content
classstring-Additional CSS class names

BreadcrumbLink

PropTypeDefaultDescription
hrefstring-Link href
childrenunknown-Link content
classstring-Additional CSS class names

BreadcrumbSeparator

PropTypeDefaultDescription
childrenunknown'/'Separator content
classstring-Additional CSS class names

BreadcrumbPage

PropTypeDefaultDescription
childrenunknown-Current page content
classstring-Additional CSS class names

Theming

The Breadcrumb component can be customized using CSS variables. This allows you to change the appearance of breadcrumb navigation, links, separators, and the current page globally or override specific instances.

Available CSS Variables

VariableDefaultDescription
--breadcrumb-gap0.5remGap between breadcrumb items
--breadcrumb-font-size0.875remFont size for breadcrumb text
--breadcrumb-separator-colorvar(--muted-foreground)Color of the separator
--breadcrumb-link-colorvar(--foreground)Color of breadcrumb links
--breadcrumb-link-hover-colorvar(--foreground)Color of breadcrumb links on hover
--breadcrumb-current-colorvar(--foreground)Color of the current page indicator

Theming Examples

Global Customization

Customize all breadcrumbs by setting CSS variables in your theme:

css
/* app/view/assets/app.css */
@theme {
    --breadcrumb-gap: 0.75rem;
    --breadcrumb-font-size: 1rem;
    --breadcrumb-link-color: hsl(220 70% 50%);
    --breadcrumb-link-hover-color: hsl(220 70% 40%);
}

Local Overrides

Override CSS variables for specific breadcrumb instances:

tsx
<div style='--breadcrumb-font-size: 1rem; --breadcrumb-gap: 1rem;'>
    <Breadcrumb>
        <BreadcrumbList>
            <BreadcrumbItem>
                <BreadcrumbLink href='/'>Home</BreadcrumbLink>
            </BreadcrumbItem>
            <BreadcrumbSeparator />
            <BreadcrumbItem>
                <BreadcrumbPage>Current</BreadcrumbPage>
            </BreadcrumbItem>
        </BreadcrumbList>
    </Breadcrumb>
</div>

Component-Specific Theming

Create themed sections with different breadcrumb styles:

tsx
<section class="large-breadcrumb">
    <style>
        .large-breadcrumb {
            --breadcrumb-font-size: 1.125rem;
            --breadcrumb-gap: 1rem;
            --breadcrumb-link-color: hsl(200 100% 40%);
            --breadcrumb-link-hover-color: hsl(200 100% 30%);
            --breadcrumb-separator-color: hsl(200 50% 50%);
        }
    </style>
    <Breadcrumb>
        <BreadcrumbList>
            <BreadcrumbItem>
                <BreadcrumbLink href="/">Home</BreadcrumbLink>
            </BreadcrumbItem>
            <BreadcrumbSeparator />
            <BreadcrumbItem>
                <BreadcrumbPage>Current</BreadcrumbPage>
            </BreadcrumbItem>
        </BreadcrumbList>
    </Breadcrumb>
</section>

BASIC BREADCRUMB

tsx
import {
  Breadcrumb,
  BreadcrumbList,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbPage,
  BreadcrumbSeparator
} from '@lockness/ui/components'

<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem>
      <BreadcrumbLink href='/'>Home</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbLink href='/ui'>Components</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbPage>Current</BreadcrumbPage>
    </BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>

SIMPLE BREADCRUMB

tsx
<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem>
      <BreadcrumbLink href="/">Home</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbPage>Current Page</BreadcrumbPage>
    </BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>

DEEP NESTING

tsx
<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem>
      <BreadcrumbLink href="/">Home</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbLink href="/products">Products</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbLink href="/products/electronics">Electronics</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbLink href="/products/electronics/phones">Phones</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbPage>iPhone 15 Pro</BreadcrumbPage>
    </BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>