Measured entry
originui-input-button-24
A controlled text input with a labeled, icon-only clear action that appears when the field has content and restores focus after clearing. It ships as a client-side shadcn registry component and depends on React state and refs, Origin UI Input and Label primitives, Lucide icons, and the registry's styling conventions.



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 | 15.0 KB (79.6 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 3.14s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/components/ui/input.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A focused, accessible clear-input pattern with sensible focus recovery and no observed rendering issues. It is easy to adapt inside an existing design system, but it needs a shadcn-style setup and is not a drop-in component for a bare React project.
Use it if
- You need a compact clear action inside a search, filter, or short text field.
- Your interface benefits from returning keyboard focus to the field immediately after clearing.
- Your project already uses shadcn-style aliases, primitives, tokens, and utility classes.
Skip it if
- You need an uncontrolled field or a reusable input API instead of a self-contained demo component.
- Clearing the field should require confirmation or trigger domain-specific cleanup beyond resetting local state.
- You want to avoid bringing in the Origin UI primitives and Lucide icon dependency for a small interaction.
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 compatible Input and Label primitives, Lucide React, the class-name utility expected by the input primitive, path aliases, and the theme tokens and utility styles referenced by the classes. Then replace the registry imports with local paths.
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 input pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- clay-inputclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- neu-search-inputneumorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.1KB
- Bare
- pass
- Prov
- NO
- clay-search-inputclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.3KB
- Bare
- pass
- Prov
- NO
- originui-comp-33minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 20.7KB
- Bare
- pass
- Prov
- NO
- hextaui-labelminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 31.3KB
- Bare
- pass
- Prov
- NO
- ruixen-circular-stepper-inputliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 61.1KB
- Bare
- pass
- Prov
- NO