Measured entry
kibo-tags
A client-side React compound component for selecting and displaying tags in a searchable popover. It ships as source through a shadcn registry and composes local Badge, Button, Command, and Popover primitives, plus the cn utility, Tailwind classes, Lucide icons, Radix UI, and cmdk.



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 | flagged at 375 |
| Axe critical | 1 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 60.2 KB (125.7 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 1.58s error during build: [vite]: Rollup failed to resolve import "class-variance-authority" from "<sandbox>re-35a4c271a8a5/src/components/ui/badge.tsx".
Verdict
A useful fit for an existing shadcn codebase, with a clear compound API and searchable popover. It needs a shadcn-style setup and does not mount bare. Fix the unnamed control and narrow-screen overflow before shipping; otherwise choose a more self-contained tag picker.
Use it if
- You already use shadcn-style primitives and want a tag picker that matches that component system.
- You need searchable options in a popover with selected values rendered as badges.
- You want source code that can be adapted for controlled or uncontrolled popover state.
Skip it if
- You need a drop-in package that works without local shadcn primitives, aliases, and Tailwind utilities.
- You cannot remediate the unnamed button accessibility failure before release.
- Your layout must avoid narrow-screen overflow without additional responsive styling.
- You need complete multi-select state management rather than a composable presentation layer.
Install
| Declared dependencies | lucide-react, radix-ui, cmdk, 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 Tailwind and the cn helper, configure the component path alias, and supply compatible Badge, Button, Command, and Popover primitives. Install Lucide React, Radix UI, cmdk, clsx, tailwind-merge, and class-variance-authority, then include the client-component boundary.
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/shadcnblocks/kiboAlternatives
Other published entries for the badge pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- neu-badgeneumorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.5KB
- Bare
- pass
- Prov
- NO
- clay-badgeclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- ruixen-load-rippleunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- kibo-listminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 42.4KB
- Bare
- pass
- Prov
- NO
- ruixen-blurred-stagger-textunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 58.1KB
- Bare
- pass
- Prov
- NO
- tripled-auto-revealing-heading-shadcnuiminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 58.3KB
- Bare
- pass
- Prov
- NO