Measured entry
ruixen-calendar-planner
selectgradient-glowmotion on file
A client-side React calendar that presents a month as a vertical day stream, with inline event creation and removal, animated month changes, and optional audio ticks. It ships as a shadcn registry component, uses Motion, Tailwind utility classes, and an aliased cn helper, and keeps its own event state while exposing add and remove callbacks.



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 | 1 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 70.6 KB (136.0 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 31.28s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/calendar-planner.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A focused, responsive planner with a useful inline editing flow, but it is closer to a polished starting point than a complete scheduling system. It needs a shadcn-style setup, and the scrollable day region needs a keyboard-access fix before production use.
Use it if
- You want a compact month planner that favors a chronological list over a calendar grid.
- Your interface benefits from selecting a day and adding short events directly in the list.
- Your app already uses shadcn conventions, Tailwind styling, and Motion.
- You can connect the add and remove callbacks to your own persistence layer.
Skip it if
- You need keyboard users to reach the scrollable day list without first modifying the component.
- You need a conventional calendar grid, week view, time slots, recurring events, or drag and drop scheduling.
- You want a lightweight dependency footprint and do not otherwise use Motion.
- You need controlled event state that always follows later prop updates.
Install
| Declared dependencies | motion |
|---|---|
| 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, provide Tailwind with the utility classes used here, configure the source alias, and supply a compatible cn class-merging helper. Run it in a client-capable React environment. No context provider is required.
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 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