Heading fonts

Choose a Google Fonts family. The selected font loads from Google Fonts; Inter and Geist Serif are bundled locally.

Search Reflow

Keyboard shortcuts

Use these keys while you are not typing in a field.

Search⌘K
Cycle themeT
Cycle accentA
Cycle heading fontF
Cycle radiusR
Cycle sizeS
Cycle iconsI
Cycle hoverH
Toggle navigation[
Toggle properties]
Previous / next demo slide←→
Show shortcuts?
Skip to content
Open navigationClose navigation

Make them yours

Theme
SystemT
Accent
BlueA
Heading font
InterF
Radius
RoundedR
Size
DefaultS
Icons
LucideI
Hover
FluidH

Playground variant

Calendar

Calendar

An accessible calendar for selecting one date or a range, with month navigation and optional week numbers.

Installation

Import from the Reflow workspace package.

Playground

Open demo
Previous month
November 2026
SuMoTuWeThFrSa
December 2026
Next month
SuMoTuWeThFrSa
Choose a date range

Single

Previous month
November 2026
Next month
SuMoTuWeThFrSa

Range

Previous month
November 2026
SuMoTuWeThFrSa
December 2026
Next month
SuMoTuWeThFrSa
Choose a date range

Stacked months

Previous month
November 2026
SuMoTuWeThFrSa
December 2026
Next month
SuMoTuWeThFrSa
Choose a date range

Booked and unavailable

Previous month
November 2026
Next month
SuMoTuWeThFrSa
Choose a date range

Weekday availability

Previous month
November 2026
Next month
SuMoTuWeThFrSa

Cell size

Previous month
November 2026
Next month
SuMoTuWeThFrSa

Week numbers

Previous month
November 2026
Next month
Week numberMoTuWeThFrSaSu
44
45
46
47
48
49

API Reference

Public props for the Reflow implementation. Native controls also accept their standard HTML attributes and Remix event mixes.

Calendar

PropTypeDefaultDescription
labelstringCalendarAccessible name or visible label for the control.
mode"single" | "range"singleSelect one date or a date range.
valueDateValue—Current value when controlled by the parent.
defaultValueDateValuenullInitial value for an uncontrolled component.
onValueChange((value: DateValue) => void)—Called when the selected value changes.
minstring—Minimum allowed value.
maxstring—Maximum allowed value.
isDateDisabled((date: string) => boolean)—Determines whether a date is unavailable.
defaultMonthstring—Initially displayed month as a local ISO date.
todaystring—Pin today to a YYYY-MM-DD date shared by server and client. Otherwise the initial render uses UTC and switches to the visitor’s local day after hydration.
namestring—Name used when the control participates in a form.
weekStartsOn0 | 10First weekday. Zero is Sunday and one is Monday.
showWeekNumbersbooleanfalseDisplays ISO week numbers.
numberOfMonths2 | 11Number of calendar months shown together.
orientation"horizontal" | "vertical"horizontalLayout direction.
bookedreadonly string[]—Dates marked as unavailable.
availablereadonly string[]—Explicit set of selectable dates.
minNightsnumber—Minimum nights in a selected date range.
maxNightsnumber—Maximum nights in a selected date range.
dayDetail((date: string) => RemixNode)—Additional content inside a date cell.
cellSizenumber—Date-cell dimension in pixels.

DateRange

PropTypeDefaultDescription
start*string—First date in the range.
endstring—Last date in the range.