Calendar
A grid for picking a date, several dates, or a range.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Usage
Calendar wraps react-day-picker's DayPicker, styled with Appica tokens and an added size prop. Set mode to choose the selection behavior, then drive the value with selected + onSelect (or omit both for an uncontrolled calendar). It defaults to Monday-first weeks and dropdown month/year navigation.
Examples
Single date
The most common setup — mode="single" with a Date | undefined state.
Date range
mode="range" selects a contiguous span. The value is a DateRange ({ from, to }); the start, middle, and end days are styled as one block.
Multiple dates
mode="multiple" collects an array of dates — click to add, click again to remove.
Disabled dates
disabled accepts any react-day-picker Matcher — a date, a range, a set of weekdays, or a predicate. Disabled days are struck through and can't be selected. This example blocks every weekend.
Sizes
The size prop scales the cell size and text. captionLayout="label" swaps the month/year dropdowns for a static label with arrow navigation.
RTL
Every Appica UI component supports right-to-left layouts out of the box. Set the dir attribute on a container (commonly your <html> element) so CSS logical properties resolve correctly, and wrap your tree in DirectionProvider so direction-aware behavior — roving focus, popup placement, and the like — follows the same direction.
For setup details and caveats, see the RTL guide.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
API reference
Calendar forwards every other DayPicker prop — modifiers/modifiersClassNames, formatters/labels, dir, mode-specific options, and more — straight through. See the react-day-picker docs for the full API.
Accessibility
- Renders a
role="grid"of day buttons; selected days exposearia-selected, and the current day is markedtoday. - ←/→/↑/↓ move between days, Page Up/Down change months, and Enter/Space select — react-day-picker's full keyboard model.
- The previous/next buttons and the month/year dropdowns carry accessible labels.
- Disabled days are removed from selection and the pointer, and are visually struck through.
- Day hover/press transitions are wrapped in
motion-reduce:variants, so they're skipped when the user prefers reduced motion.