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 } | nullControlled selected range
defaultValue{ start: Date; end: Date }Uncontrolled initial range
onValueChange(range: { start: Date; end: Date }) => voidCalled when a complete range is selected
minDateEarliest selectable date
maxDateLatest selectable date
disabled(date: Date) => booleanPredicate to disable individual days
presets{ label: string; range: { start: Date; end: Date } }[]Quick-select preset ranges shown in a side column
localestringBCP-47 locale; defaults to the current i18n locale
placeholderstringEmpty-state trigger text
size'sm' | 'md' | 'lg'mdField/grid size
labelsDateRangePickerLabelsi18n 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