Measured entry
ruixen-checkbox-simple
checkboxunclassifiedmotion on file
A client-side React checkbox with optional label and description, controlled and uncontrolled state, disabled styling, and an animated checkmark. It ships as registry TSX styled with Tailwind classes and depends on Motion plus a shadcn-style cn utility backed by clsx and tailwind-merge.



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 | 71.9 KB (137.4 KB build, 65.5 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 754ms error during build: [vite:load-fallback] Could not load <sandbox>re-3f6ba4dbeaa7/src/lib/utils (imported by src/cut/components/ruixen/checkbox-simple.tsx): ENOENT: no such file or directory, open '<sandbox>re-3f6ba4dbeaa7/src/lib/utils'
Verdict
A tidy, accessible choice for Tailwind apps that already carry Motion. The animation dependency is costly for such a small control, and the bare package does not mount on its own. It needs a shadcn-style setup with the expected utility alias.
Use it if
- You want a compact checkbox that supports both form-managed and internal state.
- You need labels, helper text, disabled state, dark styling, and visible keyboard focus in one component.
- Your app already uses Motion and a shadcn-style Tailwind utility layer.
Skip it if
- You want a dependency-light native checkbox without animation.
- Your design system already standardizes checkboxes through a headless form primitive.
- You need an indeterminate state or richer validation semantics without extending the source.
- Your project does not use Tailwind and you do not want to translate the styling.
Install
| Declared dependencies | motion, clsx, tailwind-merge |
|---|---|
| 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 Motion, clsx, and tailwind-merge; configure Tailwind; create the cn class-merging helper; and either define the source alias for that helper or replace the import with a local path. Keep the file 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/ruixenui/ruixen.comAlternatives
Other published entries for the checkbox pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- neu-checkboxneumorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- clay-checkboxclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.2KB
- Bare
- pass
- Prov
- NO
- shadcn-checkboxunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 18.4KB
- Bare
- fail
- Prov
- NO
- originui-comp-132minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 32.5KB
- Bare
- fail
- Prov
- NO
- originui-comp-135minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 32.5KB
- Bare
- fail
- Prov
- NO
- originui-comp-140minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 32.5KB
- Bare
- fail
- Prov
- NO