Measured entry
originui-comp-74
A controlled textarea with an associated label and a live remaining-character counter. It ships as a client-side shadcn registry component plus a small state hook, and relies on React, the registry Label and Textarea primitives, Radix UI through the label, Tailwind theme classes, and the shared cn utility.



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 | 28.3 KB (93.7 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 4.24s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/components/ui/textarea.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A focused, accessible textarea pattern that builds and mounts cleanly in its intended environment. It needs a shadcn-style setup before it will work in a bare project, so it is a good fit for compatible stacks but not a drop-in primitive elsewhere.
Use it if
- You need a clearly labeled textarea with a visible character allowance.
- Your project already follows shadcn registry conventions and has matching theme tokens.
- You want the counter announced to assistive technology as the value changes.
Skip it if
- You need an uncontrolled field or form-library ownership without adapting the included state hook.
- Your input limit must count words, graphemes, or encoded bytes rather than JavaScript string length.
- You do not want to carry the registry aliases, styling tokens, utility helper, and Radix-backed label dependency.
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 the registry import alias, shared cn helper, Label and Textarea primitives, the Radix UI package used by Label, and Tailwind styles with the referenced theme tokens. Copy the character-limit hook and keep the component client-rendered.
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 textarea pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- originui-comp-73minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 17.4KB
- Bare
- pass
- Prov
- NO
- shadcn-textareaunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 29.1KB
- Bare
- pass
- Prov
- NO
- hextaui-textareaminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 29.8KB
- Bare
- pass
- Prov
- NO
- originui-comp-59minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 28.1KB
- Bare
- fail
- Prov
- NO
- originui-comp-60minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 28.1KB
- Bare
- fail
- Prov
- NO
- originui-comp-62minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 28.1KB
- Bare
- fail
- Prov
- NO