BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/shadcn-htmx/breadcrumb

Breadcrumb

shadcn-htmx/breadcrumb
FreeComponent

A native <nav> landmark wrapping an <ol> of links that shows the path to the current page; the current page is a plain <span aria-current="page">, separators are aria-hidden. Zero JS. Ships in five flavours and follows the WAI-ARIA APG breadcrumb pattern.

Live preview

live · rendered by the registry
Rendered by shadcn-htmx on their own page — this is the component running, not a screenshot of it.

Install it

npx shadcn@latest add https://shadcn-htmx.productdevbook.com/r/breadcrumb.json

Source

registry/ui/breadcrumb.tsxshadcn-htmx.productdevbook.com/r/breadcrumb.json · first 6 KB
1/** @jsxImportSource hono/jsx */
2import type { PropsWithChildren } from "hono/jsx"
3import { cn, type ClassValue } from "@/registry/lib/cn"
4
5// Breadcrumb — shadcn-htmx, htmx v4 + Tailwind v4.
6//
7// shadcn source of truth (React/Radix anatomy we mirror):
8// repos/shadcn-ui/apps/v4/registry/new-york-v4/ui/breadcrumb.tsx
9// repos/shadcn-ui/apps/v4/content/docs/components/radix/breadcrumb.mdx
10//
11// APG pattern (the accessibility contract):
12// repos/aria-practices/content/patterns/breadcrumb/breadcrumb-pattern.html
13// The APG says: keyboard interaction is "Not applicable" — a breadcrumb is
14// just a list of links, so there is ZERO JS here. The ARIA contract is:
15// 1. The trail lives inside a navigation landmark. (<nav>)
16// 2. The landmark is labelled via aria-label / aria-labelledby.
17// 3. The link to the current page carries aria-current="page".
18// "If the element representing the current page is not a link,
19// aria-current is optional."
20//
21// HOW WE DIFFER FROM RADIX shadcn:
22// - Radix renders BreadcrumbPage as <span role="link" aria-disabled="true"
23// aria-current="page">. That role="link" is an emulation that makes AT
24// announce a non-interactive element as a link — exactly the kind of
25// platform-faking AGENTS.md forbids. We drop role/aria-disabled and ship
26// a plain <span aria-current="page">: a real non-link element, which the
27// APG explicitly endorses ("If … not a link, aria-current is optional").
28// We keep aria-current because it still conveys "this is the current page"
29// and is harmless on a span:
30// repos/mdn/files/en-us/web/accessibility/aria/reference/attributes/aria-current/
31// - Radix BreadcrumbSeparator/Ellipsis use role="presentation"; we use plain
32// aria-hidden="true" which already removes the node from the a11y tree
33// (MDN aria-hidden) — no extra role needed for a decorative <li>/<span>.
34// - We render BreadcrumbList as <ol> (ordered: hierarchy has a direction),
35// matching the APG description "list of links … in hierarchical order".
36// repos/mdn/files/en-us/web/html/reference/elements/ol/
37
38// Root navigation landmark. data-slot="breadcrumb".
39type BreadcrumbProps = PropsWithChildren<{
40 // Accessible name for the navigation landmark.
41 ariaLabel?: string
42 // Id of a visible heading that labels the landmark. When set, that heading
43 // is the name source and the defaulted aria-label is NOT emitted, so the
44// … truncated

Facts

Registry
shadcn-htmx
Type
registry:ui
Access
Free
Files written
0
Licence
MIT
First indexed
2026-08-02
Last confirmed
today

Go to the source

Docs on shadcn-htmx shadcn-htmx.productdevbook.com productdevbook/shadcn-htmx on GitHub Raw registry item This item as JSON

More from shadcn-htmx

All 83 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
Accordionaccordionshadcn-htmxComponentsFreeno deps
Active Searchactive-searchshadcn-htmxComponentsFreeno deps
Alertalertshadcn-htmxComponentsFreeno deps
Alert Dialogalert-dialogshadcn-htmxComponentsFreeno deps
Aspect Ratioaspect-ratioshadcn-htmxComponentsFreeno deps
Auto Gridauto-gridshadcn-htmxComponentsFreeno deps
Autocompleteautocompleteshadcn-htmxComponentsFreeno deps
Autosize Textareaautosize-textareashadcn-htmxComponentsFreeno deps
BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex