Appica UIUI 1.0.0

Calendar

A grid for picking a date, several dates, or a range.

July 2026

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.

July 2026

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 expose aria-selected, and the current day is marked today.
  • ←/→/↑/↓ 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.

© 2026 Appica UI. A free component library, crafted by the Appica team.