Measured entry
neobrutalism-form
A client-side form composition layer distributed as shadcn registry source. It connects react-hook-form providers and controllers to Radix Label and Slot primitives, then supplies linked labels, descriptions, validation messages, and field state. It also expects the registry's local Label component, cn utility, Tailwind classes, and the declared resolver and schema packages.



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 | 44.4 KB (109.9 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A sound choice for an existing neobrutalism and react-hook-form stack: it built and mounted cleanly, stayed contained across the tested layouts, and produced no reported accessibility violations. The dependency footprint is meaningful for teams that only need basic field markup.
Use it if
- You already use react-hook-form and want consistent field wiring for labels, descriptions, errors, and controls.
- Your interface uses the neobrutalism theme tokens and typography classes expected by the registry.
- You want source-owned form primitives that can wrap native inputs or custom controls through Radix Slot.
Skip it if
- Your forms use another state and validation system, since adopting this also commits the screen to react-hook-form conventions.
- Your project does not use Tailwind or the registry's neobrutalism tokens, local Label component, and cn utility.
- You need a self-contained input suite, since this provides field composition and messaging but not the actual controls.
Install
| Declared dependencies | @radix-ui/react-label, @radix-ui/react-slot, @hookform/resolvers, zod, react-hook-form, clsx, tailwind-merge |
|---|---|
| Missing on install | none |
| Bare install | builds and mounts without the shadcn-style helpers |
| Provider | no provider required in the harness |
In a non-shadcn project, add react-hook-form, the resolver and schema packages, Radix Label and Slot, clsx, and tailwind-merge. Provide compatible local Label and cn modules or rewrite those imports, enable client rendering, and define the Tailwind typography and neobrutalism theme classes used by the component.
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/ekmas/neobrutalism-componentsAlternatives
Other published entries for the form pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hextaui-kbdminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 29.8KB
- Bare
- pass
- Prov
- NO
- shadcn-labelunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 31.1KB
- Bare
- pass
- Prov
- NO
- neobrutalism-labelbrutalism
- Renders
- YES
- A11y
- 0
- Gzip
- 31.5KB
- Bare
- pass
- Prov
- NO
- neobrutalism-nlabelbrutalism
- Renders
- YES
- A11y
- 0
- Gzip
- 31.5KB
- Bare
- pass
- Prov
- NO
- shadcn-formunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 43.9KB
- Bare
- pass
- Prov
- NO
- reui-kanbanminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 49.4KB
- Bare
- pass
- Prov
- NO