OPUS/UI

Navigation

Calendar

Accessible month grid — single or range, two-month view, disabled days, min/max, week start, Intl labels and full keyboard nav.

2 files · 213 locdeps: clsx, tailwind-merge
October 2026
MoTuWeThFrSaSu

Sundays disabled · arrows / PageUp / Home

October 2026
SuMoTuWeThFrSa

Pick a range

Installation

With the shadcn CLI, pointing at this platform’s registry:

npx shadcn@latest add https://opusui.131199999.xyz/r/calendar.json

Or offline, straight from your opus55 checkout (copies every file it needs):

node ../tailwind_component/opus55/scripts/add.mjs calendar

Usage

import { Calendar } from "@/components/opus/ui/calendar";

<Calendar selected={day} onSelect={setDay} />
<Calendar mode="range" selected={range} onSelect={setRange} numberOfMonths={2} />

API

PropTypeDefaultDescription
mode"single" | "range""single"Selection model.
selected / onSelectDate | { from, to }—Value.
min / max / isDisabledDate / (d) => boolean—Constraints.
weekStartsOn / locale / numberOfMonths0|1 / string / 1|2—Presentation.

Notes

  • Keyboard: arrows move by day/week, PageUp/PageDown by month, Home/End to week edges, Enter selects.

Command palette