Neutral product UI
The original use case: selecting a reliable period for generated reports.
A complete field for picking, typing and validating date ranges. Bring your own visual system; keep one reliable interaction model.
Try the field
Type a date, select a new range, or open the calendar with the keyboard.
Range transitions, typed input and validation stay in sync.
Navigation and focus restoration are considered from the start.
Use slots, data attributes or an unstyled base in any system.
Start with useful defaults, tune every visual slot, or remove the defaults entirely and connect it to your own primitives.
<RangeCalendar
defaultValue={range}
inputFormat="YYYY-MM-DD"
classNames={{ field: "your-field" }}
/>Change a few decisions and see the same range behavior adapt in real time.
Behavior
Active API
<RangeCalendar
defaultValue={range}
inputFormat="MM/DD/YYYY"
numberOfMonths={1}
weekStartsOn={1}
popoverSide="bottom"
fromPlaceholder="Arrival"
toPlaceholder="Departure"
popoverAvoidCollisions={false}
classNames={violetTheme}
>
Date Range
</RangeCalendar>Styling is not an afterthought: the field can live naturally in product, consumer and data-heavy interfaces.
The original use case: selecting a reliable period for generated reports.
Full-width, compact and high-contrast for data-heavy workflows.
Soft, expressive and friendly without changing range behavior.
Monospace dates and a crisp cyan accent for technical products.
Almost no chrome: typography and whitespace do the visual work.
A branded block treatment for checkout and promotional experiences.