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.