Skip to content

shadcn.io is an independent project built on shadcn/ui

Free

Breadcrumb with Bullet Separator (Home Icon) for Svelte

A breadcrumb with a home icon, then Components and Breadcrumb, and a bullet character between the crumbs.

UI library: Ark UI

The first crumb is a home icon, named Home for screen readers. Bullets separate it from Components and from Breadcrumb, the current page. The last crumb is not a link.

Use it when the root is an icon and the separator should stay a simple mark. A slash reads more like a file path. A site menu is a Navigation Menu. In Svelte, Ark UI does not choose the separator.

Preview

Preview width

Installation

MCP · Pro
Make your AI a shadcn expert
Your agent installs components, builds pages and restyles your app from one prompt, in Claude Code, Cursor or VS Code.
Part of Pro

Anatomy

Breadcrumb anatomy: link, ellipsis, separator, item, page

Usage

<Breadcrumb><BreadcrumbList><BreadcrumbItem><BreadcrumbLink>{#snippet asChild(props)}<a {...props({ "aria-label": "Home", href: "/" })}><HomeIcon aria-hidden="true" class="size-4" /></a>{/snippet}</BreadcrumbLink></BreadcrumbItem><BreadcrumbSeparator>•</BreadcrumbSeparator><BreadcrumbItem><BreadcrumbLink>{#snippet asChild(props)}<a {...props({ href: "/components" })}>Components</a>{/snippet}</BreadcrumbLink></BreadcrumbItem><BreadcrumbSeparator>•</BreadcrumbSeparator><BreadcrumbItem><BreadcrumbPage>Breadcrumb</BreadcrumbPage></BreadcrumbItem></BreadcrumbList></Breadcrumb>

FAQ

How is the bullet drawn?

The character • is the child of BreadcrumbSeparator, in place of the default chevron. The separator is hidden from assistive tech.

How is the home icon named?

The link to / holds only a HomeIcon at size-4, hidden from assistive tech, so the link carries aria-label="Home". Screen readers announce it as the Home link.

Where does the space around the bullet come from?

From the breadcrumb list's gap. The demo adds no spacing classes of its own, so the bullet sits where a chevron would.

Can I use another character?

Yes. Any text or icon works in its place, such as ·, | or a Lucide icon. Use one mark across the whole site.

Why isn't the last crumb a link?

BreadcrumbPage is the page you are on. It renders text with aria-current="page", so it is announced as the current page and has nowhere to go.

How do the links go through my router?

BreadcrumbLink takes asChild, and the demo puts an anchor inside. Spread the props it gives you onto your router's link.

API Reference

Breadcrumb

No extra props in this demo. The rest is on the Breadcrumb page.