Skip to content
Component

Date Picker

Text field + Popover-composed Calendar.

Basic

When to use

  • A single date field inside a form (birthdate, due date, booking date) where a full-time grid should stay hidden until needed.

When not to use

  • A page where the date grid is the primary content and should always be visible - use Calendar directly.
  • Selecting a range of dates - not currently supported by either Calendar or Date Picker.

Keyboard

KeyAction
Enter / Space / ArrowDownOpens the calendar popup from the text field.
Arrow keys (in the popup)Same day/week/month navigation as Calendar.
EscapeCloses the popup and returns focus to the field.

Mobile behavior

  • Opens the same Popover-anchored Calendar as desktop rather than swapping to a native date input - keeps behavior and styling consistent across breakpoints.

Accessibility notes

  • The trigger is a real text field, so it's labeled the same way any other form field is (aria-label or a linked <label>).
  • Inherits Calendar's date-grid keyboard pattern and Popover's focus-return-to-trigger behavior once composed together.

Common mistakes

  • Typing an unparseable date directly into the field with no format hint - pair it with a placeholder showing the expected format.

Known limitations

  • No typed-date parsing beyond what the field forwards - freeform typing isn't validated against a date format.

Related components

CriterionStatusNote
Keyboard supportSupportedOpens via Enter/Space/ArrowDown; full Calendar keyboard pattern once open.
Focus managementSupportedFocus returns to the text field when the popup closes.
Screen reader labelsPartialRequires an explicit aria-label or <label> on the field - not automatic.
Reduced motionSupportedprefers-reduced-motion: reduce zeroes all Fuji transition durations globally.
Reduced transparencySupportedprefers-reduced-transparency: reduce flattens Glass to opaque surfaces (portals included).
RTL layoutPartialLogical flex/grid gap works under dir="rtl"; directional chevrons are not yet mirrored.

API reference

value / defaultValueNone
Date | null

Controlled or uncontrolled selected date.

onChangeNone
(date: Date) => void

Fires when a day is picked in the popover.

minDate / maxDateNone
Date

Bounds of the selectable range.

placeholderNone
string

Trigger text shown when no date is set.

size"md"
"sm" | "md" | "lg"

Trigger field height.

invalid / disabledfalse
boolean

Field state.

locale"en-US"
string

BCP-47 locale for the calendar labels.

classNameNone
string

Additional classes applied to the component root.