Measured entry
ruixen-smart-breadcrumb
A client-side React breadcrumb shipped as a shadcn registry item. It composes shadcn breadcrumb primitives, uses Lucide for the default chevron, and expects Tailwind utilities plus the usual class-name helper stack. It accepts path items, a custom separator, a visibility cap, and a wrapper class.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 1 |
| Axe minor | 0 |
| Gzip marginal | 33.0 KB (98.5 KB build, 65.5 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 2.92s error during build: [vite:load-fallback] Could not load <sandbox>re-5792f024cd22/src/lib/utils (imported by src/components/ui/breadcrumb.tsx): ENOENT: no such file or directory, open '<sandbox>re-5792f024cd22/src/lib/utils'
Verdict
It builds and mounts cleanly inside the prepared stack, but it needs a shadcn-style setup and its headline ellipsis behavior is incorrectly wired. Adopt it only if you are willing to patch the placeholder logic, honor isCurrent, and label repeated breadcrumb landmarks.
Use it if
- You already use shadcn breadcrumb primitives and want a small wrapper for route trails.
- You need a custom separator and simple first-and-last path collapsing.
- Your routes can treat the final visible item as the current page.
Skip it if
- You need the supplied isCurrent flag to determine the current page; the implementation ignores it and always treats the last visible item as current.
- You expect item icons from the demo; the component type and renderer do not include or render them.
- You need a true accessible ellipsis; the inserted placeholder lacks the flag the renderer checks, so it becomes a link-like text item instead.
- You render several breadcrumb landmarks on one page and cannot add distinct accessible labels.
Install
| Declared dependencies | lucide-react, radix-ui, clsx, tailwind-merge |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add the breadcrumb primitives and their Radix dependency, Lucide React, Tailwind styling, and the local cn utility backed by clsx and tailwind-merge. Configure the path alias or rewrite imports, then fix the ellipsis sentinel and add an accessible label when multiple landmarks appear.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/ruixenui/ruixen.comAlternatives
Other published entries for the navbar pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hyperui-headers-4editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 19.1KB
- Bare
- pass
- Prov
- NO
- kibo-dialog-stackminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 33.4KB
- Bare
- pass
- Prov
- NO
- ruixen-floating-navbarunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 59.9KB
- Bare
- pass
- Prov
- NO
- ruixen-hover-gradient-navbargradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 60.9KB
- Bare
- pass
- Prov
- NO
- ruixen-expandable-menu-navbarunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 61.8KB
- Bare
- pass
- Prov
- NO
- hextaui-cardminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 26.7KB
- Bare
- fail
- Prov
- NO