Presets

Blocks

Get PRO

Need premium blocks and templates? Upgrade to PRO and get access.

Upgrade
JoinLogin
Presets
Monochrome
Overview
  • Introduction
  • Components
  • Installation
Components
  • Accordion
  • Alert
  • Alert Dialog
  • Aspect Ratio
  • Avatar
  • Badge
  • Breadcrumb
  • Button
  • Button Group
  • CalendarNEW
  • Card
  • CarouselNEW
  • Checkbox
  • Collapsible
  • Dialog
  • Dropdown Menu
  • Empty
  • Field
  • Input
  • Input Group
  • Item
  • Kbd
  • Label
  • Native Select
  • Scroll Area
  • SelectNEW
  • Separator
  • SwitchNEW
  • Table
  • Tabs
  • Textarea
  • TooltipNEW

Breadcrumb

PreviousNext

Displays the path to the current resource using a hierarchy of links.

1import {2  Breadcrumb,3  BreadcrumbEllipsis,4  BreadcrumbItem,

Installation

pnpm dlx sprawlify@latest add breadcrumb
npx sprawlify@latest add breadcrumb
yarn sprawlify@latest add breadcrumb
bunx --bun sprawlify@latest add breadcrumb

Install the following dependencies:

pnpm add @sprawlify/primitives @sprawlify/react
npm install @sprawlify/primitives @sprawlify/react
yarn add @sprawlify/primitives @sprawlify/react
bun add @sprawlify/primitives @sprawlify/react

Add the following files to your project:

breadcrumb.tsx
1import * as React from "react";2import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";3import { cn } from "@/lib/utils";4import { sprawlify } from "@sprawlify/react";56function Breadcrumb({ ...props }: React.ComponentProps<typeof sprawlify.nav>) {7  return (8    <sprawlify.nav9      data-scope="breadcrumb"10      data-part="root"11      aria-label="breadcrumb"12      data-slot="breadcrumb"13      {...props}14    />15  );16}1718function BreadcrumbList({ className, ...props }: React.ComponentProps<typeof sprawlify.ol>) {19  return (20    <sprawlify.ol21      data-scope="breadcrumb"22      data-part="list"23      data-slot="breadcrumb-list"24      className={cn(25        "flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5",26        className,27      )}28      {...props}29    />30  );31}3233function BreadcrumbItem({ className, ...props }: React.ComponentProps<typeof sprawlify.li>) {34  return (35    <sprawlify.li36      data-scope="breadcrumb"37      data-part="item"38      data-slot="breadcrumb-item"39      className={cn("inline-flex items-center gap-1.5", className)}40      {...props}41    />42  );43}4445function BreadcrumbLink({46  asChild,47  className,48  ...props49}: React.ComponentProps<typeof sprawlify.a>) {50  return (51    <sprawlify.a52      data-scope="breadcrumb"53      data-part="link"54      data-slot="breadcrumb-link"55      className={cn("transition-colors hover:text-foreground", className)}56      {...props}57    />58  );59}6061function BreadcrumbPage({ className, ...props }: React.ComponentProps<typeof sprawlify.span>) {62  return (63    <sprawlify.span64      data-scope="breadcrumb"65      data-part="page"66      data-slot="breadcrumb-page"67      role="link"68      aria-disabled="true"69      aria-current="page"70      className={cn("font-normal text-foreground", className)}71      {...props}72    />73  );74}7576function BreadcrumbSeparator({77  children,78  className,79  ...props80}: React.ComponentProps<typeof sprawlify.li>) {81  return (82    <sprawlify.li83      data-scope="breadcrumb"84      data-part="separator"85      data-slot="breadcrumb-separator"86      role="presentation"87      aria-hidden="true"88      className={cn("[&>svg]:size-3.5", className)}89      {...props}90    >91      {children ?? <ChevronRightIcon />}92    </sprawlify.li>93  );94}9596function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<typeof sprawlify.span>) {97  return (98    <sprawlify.span99      data-scope="breadcrumb"100      data-part="ellipsis"101      data-slot="breadcrumb-ellipsis"102      role="presentation"103      aria-hidden="true"104      className={cn("flex size-9 items-center justify-center", className)}105      {...props}106    >107      <MoreHorizontalIcon className="size-4" />108      <span className="sr-only">More</span>109    </sprawlify.span>110  );111}112113export {114  Breadcrumb,115  BreadcrumbList,116  BreadcrumbItem,117  BreadcrumbLink,118  BreadcrumbPage,119  BreadcrumbSeparator,120  BreadcrumbEllipsis,121};122

Update the import paths to match your project setup.

Usage

1import {
2  Breadcrumb,
3  BreadcrumbItem,
4  BreadcrumbLink,
5  BreadcrumbList,
6  BreadcrumbPage,
7  BreadcrumbSeparator,
8} from "@/components/ui/breadcrumb"
1<Breadcrumb>
2  <BreadcrumbList>
3    <BreadcrumbItem>
4      <BreadcrumbLink href="/">Home</BreadcrumbLink>
5    </BreadcrumbItem>
6    <BreadcrumbSeparator />
7    <BreadcrumbItem>
8      <BreadcrumbLink href="/components">Components</BreadcrumbLink>
9    </BreadcrumbItem>
10    <BreadcrumbSeparator />
11    <BreadcrumbItem>
12      <BreadcrumbPage>Breadcrumb</BreadcrumbPage>
13    </BreadcrumbItem>
14  </BreadcrumbList>
15</Breadcrumb>

Examples

Basic

A basic breadcrumb with a home link and a components link.

1import {2  Breadcrumb,3  BreadcrumbItem,4  BreadcrumbLink,

Collapsed

We provide a <BreadcrumbEllipsis /> component to show a collapsed state when the breadcrumb is too long.

1import {2  Breadcrumb,3  BreadcrumbEllipsis,4  BreadcrumbItem,

Custom Separator

Use a custom component as children for <BreadcrumbSeparator /> to create a custom separator.

1import {2  Breadcrumb,3  BreadcrumbItem,4  BreadcrumbLink,

Dropdown

You can compose <BreadcrumbItem /> with a <DropdownMenu /> to create a dropdown in the breadcrumb.

1import {2  Breadcrumb,3  BreadcrumbItem,4  BreadcrumbLink,

On This Page

InstallationUsageExamplesBasicCollapsedCustom SeparatorDropdown

Get PRO

Need premium blocks and templates? Upgrade to PRO and get access.