DigitalClock
v1.0.4Updated 28 Sept 2026Scrollable digital time-list pickers (MUI DigitalClock / MultiSectionDigitalClock equivalents). DigitalClock renders one scrollable column of times at a fixed interval; MultiSectionDigitalClock renders hours | minutes |
Preview
Live · 10 stories▸Why this is recommendedtimepickerclockdigital+5
The default, out-of-the-box DigitalClock.
- ✓Selecting from preset appointment slots
- ✓Booking a table or a salon appointment
- ✓Restricting time entry to business hours
- ✓Choosing a delivery time window
- ✓Compact single-column time entry in a popover
- Single scrollable column of times at a fixed timeStep
- 12-hour (AM/PM) and 24-hour labels via `ampm`
- minTime / maxTime range renders out-of-range slots disabled
- skipDisabled omits out-of-range options entirely
- Controlled (`value`) and uncontrolled (`defaultValue`) modes
- Accessible listbox (role=listbox / option / aria-selected / aria-activedescendant)
- Keyboard: ArrowUp/ArrowDown/Home/End to move, Enter/Space to select
- Auto-scrolls the selected option into view
- maxHeight to cap the scroll area
- Labelled by FormField: the listbox takes the id and is named by the field label through aria-labelledby; the built-in "Select time" name steps aside
- ✕Picking an exact time down to the minute or second (use MultiSectionDigitalClock)
- ✕Analog-style picking (use TimeClock)
- ✕Date selection (use DatePicker)
- ✕A text time field with a popover (use TimePicker)
Install
Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.
Usage
Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.
Props
valueControlled value
—onChangeFired on selection
—defaultValueInitial value when uncontrolled
—timeStepInterval between options in minutes (default 30)
—ampm12-hour labels (default true) vs 24-hour
—minTimeDisable options before this time-of-day
—maxTimeDisable options after this time-of-day
—skipDisabledOmit disabled options entirely instead of dimming them
—maxHeightMax scrollable height in px (default 256)
—disabledDisable the whole list
—classNameExtra classes on the wrapper
—aria-labelAccessible name of the listbox; defaults to labels.ariaLabel ("Select time") except inside a labelled FormField
—aria-labelledbyId(s) of the element(s) that label the listbox; wins over a FormField label
—idDOM id set on the focusable listbox; FormField clones its field id in, and its label then names the control
—aria-describedbyId(s) of hint or error text describing the listbox (FormField clones this in)
—aria-invalidMark the listbox invalid; FormField clones this in from its error prop
—aria-requiredMark the listbox required; FormField clones this in from its required prop
—