DateRangePicker

A dual-calendar picker for selecting a contiguous date range.

Category: inputs · WCAG 2.2-AA · date, range, calendar, picker, input, form

Sizes

States

Props

PropTypeDefaultDescription
value{ start: Date; end: Date } | null—Controlled selected range
defaultValue{ start: Date; end: Date }—Uncontrolled initial range
onValueChange(range: { start: Date; end: Date }) => void—Called when a complete range is selected
minDate—Earliest selectable date
maxDate—Latest selectable date
disabled(date: Date) => boolean—Predicate to disable individual days
presets{ label: string; range: { start: Date; end: Date } }[]—Quick-select preset ranges shown in a side column
localestring—BCP-47 locale; defaults to the current i18n locale
placeholderstring—Empty-state trigger text
size'sm' | 'md' | 'lg'mdField/grid size
labelsDateRangePickerLabels—i18n label overrides

Design tokens

When to use

When not to use

How to build an accessible DateRangePicker in React →

Examples

Basic

Uncontrolled dual-calendar range picker

<DateRangePicker />

With presets

Quick-select common ranges

<DateRangePicker presets={[{ label: "Last 7 days", range: last7 }]} />

Constrained

Limits the selectable dates

<DateRangePicker min={new Date(Date.UTC(2024, 0, 1))} max={new Date(Date.UTC(2024, 11, 31))} />

Related components

← Back to docs