Measured entry
originui-select-17
A copy-paste React and Tailwind field that joins a native protocol selector to a text input under one visible label. It ships through a shadcn registry and composes the registry's Input, Label, and SelectNative primitives, with React's generated IDs and the declared Radix UI package in the installed setup.



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 | 1 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 15.3 KB (79.9 KB build, 64.6 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.67s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/components/ui/label.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A focused URL-entry pattern that builds and mounts in its intended environment, but it is not ready unchanged because the native selector lacks an accessible name. It needs a shadcn-style setup, and teams should add a dedicated label or equivalent accessible naming before shipping it.
Use it if
- You need users to choose a URL scheme separately from the host or address they enter.
- Your app already uses shadcn-style aliases, shared form primitives, and Tailwind utility classes.
- You want a compact joined control while keeping the scheme picker native.
Skip it if
- You need an accessible drop-in without modification, because the selector has no accessible name.
- You want one validated URL field rather than separate scheme and address values.
- Your design system does not use Tailwind or shadcn-style component plumbing.
- You need a searchable, custom-rendered, or async option menu instead of a native selector.
Install
| Declared dependencies | radix-ui |
|---|---|
| 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 React, Tailwind CSS, the declared Radix UI dependency, compatible Input, Label, and native select primitives, the class-merging utility those primitives expect, and matching import aliases and theme tokens. Also give the selector its own accessible label or an equivalent accessible name.
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/origin-space/originuiAlternatives
Other published entries for the select pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hextaui-native-selectminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 30.6KB
- Bare
- fail
- Prov
- NO
- 8bitcn-difficulty-selectskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 32.7KB
- Bare
- fail
- Prov
- NO
- hextaui-checkboxminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 35.8KB
- Bare
- fail
- Prov
- NO
- hextaui-radio-groupminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 40.3KB
- Bare
- fail
- Prov
- NO
- ruixen-tag-cloud-selectunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 58.8KB
- Bare
- fail
- Prov
- NO
- tripled-animated-select-shadcnuiminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 60.4KB
- Bare
- fail
- Prov
- NO