Components

DatePicker

A button that opens a calendar to pick one date

Overview

DatePicker picks one date from a calendar. The button shows the short date; dates are picked, not typed.

  • Monday first — weeks start on Monday, like the app's weekly screens
  • Today — shown in bold with a dot. The chosen day is a filled circle
  • Keyboard — follows the WAI-ARIA datepicker dialog pattern

Basic Usage

Empty

Props

PropTypeDefaultRequiredDescription
valueDate | null-YesThe chosen date, or null
onChange(date: Date) => void-YesCalled with the picked day at local midnight
placeholderstring'Date'NoText shown when there is no value
aria-labelstring'Date'NoAccessible name. The full date is appended when set (Date, Thursday, October 15, 2026)
disabledbooleanfalseNoDisabled. The calendar does not open
classNamestring-NoExtra CSS class

Specification

base

상태요소속성값
enabledtriggerpaddingX$size.space.300
enabledtriggerpaddingY$size.space.150
enabledtriggergap$size.space.200
enabledtriggerborderRadius$size.radius.200
enabledtriggerborderWidth$size.stroke.border
enabledtriggerborderColor$color.border.default.default
enabledtriggerbackgroundColor$color.background.default.default
enabledtriggertypography$text.bodySmall
enabledtriggercolor$color.text.default.default
enabledpanelpadding$size.space.300
enabledpanelgap$size.space.200
enabledpanelborderRadius$size.radius.200
enabledpanelborderWidth$size.stroke.border
enabledpanelborderColor$color.border.default.default
enabledpanelbackgroundColor$color.background.default.default
enableddaywidth32px토큰 아님 — no sizing token scale; matches Figma Calendar Day
enableddaytypography$text.bodySmall
enableddaycolor$color.text.default.default
hovertriggerbackgroundColor$color.background.default.defaultHover
hoverdaybackgroundColor$color.background.default.defaultHover
focusVisibletriggeroutlineWidth$size.stroke.focus
focusVisibletriggeroutlineStylesolid토큰 아님 — no line style token
focusVisibletriggeroutlineColor$color.border.focus.default
focusVisibletriggeroutlineOffset2px토큰 아님 — no ring offset token
selecteddaybackgroundColor$color.background.brand.default
selecteddaycolor$color.text.brand.onBrand
disabledtriggerbackgroundColor$color.background.disabled.default
disabledtriggerborderColor$color.border.disabled.default
disabledtriggercolor$color.text.disabled.default

Accessibility

  • The button's name carries the full date, for example "Date, Thursday, October 15, 2026". Pass aria-label to change the first part.
  • Enter or Space opens the calendar and focuses the chosen day (or today).
  • Left and Right move a day, Up and Down a week, Page Up and Page Down a month (with Shift, a year), Home and End go to the start and end of the week.
  • Enter or Space picks the day. Escape closes without picking. Both return focus to the button. Tab stays inside the calendar.

Guidelines

  • onChange receives the picked day at local midnight. Combine it with your own time if you need one, as TimePicker.Date does.