Measured entry
hextaui-team-switcher
A client-side team and workspace picker shipped as a shadcn registry component. It combines avatar, badge, button, searchable command menu, and popover primitives, uses a class-name utility and Lucide icons, and leaves selection and team creation to callbacks supplied by the host app.



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 | 0 |
| Axe minor | 0 |
| Gzip marginal | 63.6 KB (129.0 KB build, 65.4 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 1m 36s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/blocks/team/team-switcher.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A solid fit for an existing shadcn-based dashboard: it builds, mounts, adapts across the tested layouts, and exposes practical callbacks. It needs a shadcn-style setup, so standalone adoption requires reconstructing its aliases, utility helper, primitives, and theme classes.
Use it if
- You need a compact workspace switcher with search, avatars, plan labels, and an optional create action.
- Your app already uses shadcn-style aliases, theme classes, and matching UI primitives.
- You want selection controlled by application state rather than routing or data fetching built into the component.
Skip it if
- You need the switcher to fetch teams, persist the active team, or enforce access rules on its own.
- Your design system does not provide compatible command menu, popover, avatar, badge, and button primitives.
- You want a dependency-light native select instead of a composed interactive menu.
Install
| Declared dependencies | @radix-ui/react-avatar, @radix-ui/react-slot, @radix-ui/react-visually-hidden, @radix-ui/react-dialog, @radix-ui/react-scroll-area, @radix-ui/react-popover |
|---|---|
| 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 imported Radix packages and Lucide React, provide the class-name utility, recreate or map the avatar, badge, button, command-menu, and popover components, configure the import aliases, and define the Tailwind theme classes used by the markup. Keep it in a client-rendered React 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/preetsuthar17/HextaUIAlternatives
Other published entries for the team pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hyperui-team-3editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 17.4KB
- Bare
- pass
- Prov
- NO
- meraki-team-side-by-sideminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- meraki-team-simpleminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- hyperui-team-1editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 18.1KB
- Bare
- pass
- Prov
- NO
- hyperui-team-2editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 18.2KB
- Bare
- pass
- Prov
- NO
- meraki-team-backgroundminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 20.5KB
- Bare
- pass
- Prov
- NO