Calendar

shadcn/ui calendar on React DayPicker, restyled on DESIGN.md tokens. 32px cells on a 4px radius, flat day buttons, primary selection, primary-soft range fill. Surface fill that turns transparent inside a card. Weeks start on Monday and dates read day/month/year, in Europe/Amsterdam, unless a locale or timeZone says otherwise.

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

<Calendar mode="single" selected={date} onSelect={setDate} />

Basic

Single selection. Today sits on muted; the pick is primary.

October 2026

Range

mode="range" across two months. Ends are primary, the middle is primary-soft eased toward surface, with primary-strong ink.

January 2026
February 2026

Month and year

captionLayout="dropdown" for dates far from today.

October 2026

Presets

Quick picks in the card footer move both the selection and the month.

October 2026

Date and time

Time fields in the footer, sm inputs to match the cells.

October 2026

Booked dates

Disabled and struck through via a modifier.

January 2026

Custom cell size

--cell-size per breakpoint, with a second line per day.

December 2026

Week numbers

showWeekNumber adds an ISO week column.

January 2026
01
02
03
04
05
06

Time zone

Europe/Amsterdam is the default; pass timeZone to change it. The day never shifts by one.

October 2026

Europe/Amsterdam · 20 October 2026

Manual entry

A field under the calendar. Typing a full date moves the pick; picking a day fills the field. Validates on blur.

October 2026