Appica UIUI 1.1.0

Calendar

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

September 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.

September 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.