Forms

Time Picker

A field for entering a time by hour and minute. Add an AM/PM toggle when you need one.

ReactVueWeb Components
View in Storybook

Playground

Examples

<TimePicker defaultValue={Temporal.PlainTime.from('09:30')} minuteStep={15} onChange={setTime} />
<TimePicker hour12 defaultValue={Temporal.PlainTime.from('13:00')} />

Props

Name Type Default Description
value Temporal.PlainTime | null Controlled time (a `Temporal.PlainTime`), or `null`.
defaultValue Temporal.PlainTime | null Initial time when uncontrolled. @default null
onChange (value: Temporal.PlainTime | null) => void Called with the new `Temporal.PlainTime` (or `null`).
minuteStep number 5 Minute increment. @default 5
hour12 boolean false Use 12-hour display with an AM/PM select. @default false
disabled boolean false Disable the control. @default false
hourLabel string Hour Accessible label for the hour select. @default 'Hour'
minuteLabel string Minute Accessible label for the minute select. @default 'Minute'
meridiemLabel string AM/PM Accessible label for the AM/PM select. @default 'AM/PM'
id string
className string

Accessibility

  • Body/background contrast is ≥ 7:1 (AAA) in both light and dark.
  • Every interaction works with the keyboard alone.
  • The focus ring is always visible.
  • Respects prefers-reduced-motion and stops excessive motion.

Every component is designed to meet WCAG 2.1 AAA.