Measured entry
shadcn-block-calendar-15
A client-side, single-date calendar that displays week numbers and keeps the selected day in React state. It ships as a shadcn registry block layered on the shadcn Calendar and Button components, with Tailwind theme classes, a cn utility, React DayPicker, date-fns, Lucide icons, and Radix Slot in the dependency chain.



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 | 1 |
| Axe minor | 0 |
| Gzip marginal | 50.8 KB (116.2 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | none |
What the harness recorded
BARE BUILD
✗ Build failed in 35.55s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/components/ui/calendar.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A focused choice for shadcn apps that need week-number date selection, and it builds, mounts, and stays within its viewport in the configured harness. It needs a shadcn-style setup; the bare project fails because the expected cn utility and component infrastructure are absent. Patch the table scope issue before release.
Use it if
- You need an inline single-date picker with visible week numbers.
- Your app already uses shadcn conventions, Tailwind theme tokens, and aliased component imports.
- You want controlled selection state that can be connected to a form or filter.
Skip it if
- You need date ranges, time selection, recurring events, or an agenda view without extending the block.
- You want a lightweight native date field and do not want the DayPicker dependency chain.
- Your release requires a clean accessibility audit before teams can patch the invalid table scope usage.
Install
| Declared dependencies | react-day-picker@latest, date-fns, @radix-ui/react-slot |
|---|---|
| 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 React DayPicker, date-fns, Lucide React, and Radix Slot; provide the shadcn Button component and cn utility; configure the import alias; and supply the Tailwind utilities, theme tokens, and global styles used by the calendar. Mark the component as client-side where the framework requires it.
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/shadcn-ui/uiAlternatives
Other published entries for the calendar pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- shadcn-calendarunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 37.3KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-01minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.8KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-02minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-03minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-04minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-05minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO