TimePicker

Native time input wrapper with label, hint, error, and size variants

Category: inputs · WCAG 2.2-AA · time, input, form

Sizes

States

Props

PropTypeDefaultDescription
valuestring—Controlled value (HH:mm)
defaultValuestring—The initial value when uncontrolled.
onValueChange(value: string) => void—Called with the new HH:MM time string when the value changes.
minstring—Minimum allowed value.
maxstring—Maximum allowed value.
stepnumber—Increment between allowed values.
labelstring—Text label for the control.
hintstring—Supplementary hint text shown with the control.
errorstring—Error message shown when the value is invalid.
size'sm' | 'md' | 'lg''md'Visual size of the component (e.g. 'sm', 'md', 'lg').
disabledboolean—When true, disables the control and removes it from the tab order.
classNamestring—Additional CSS class names merged onto the root element.
ariaLabelstring—Invisible accessible name, for when a visible element outside this component already labels it and `label` would render that text a second time. ⚠ `label` on this component is **visible**; `IconButton.label`/`Sparkline.label` are invisible names, which is the prior that costs adopters a duplicated label. The raw DOM `aria-label` still wins over this.

Design tokens

When to use

When not to use

How to build an accessible TimePicker in React →

Examples

Basic time picker

<TimePicker label="Meeting time" onValueChange={(v) => console.log(v)} />

Related components

← Back to docs