Overview
Time pickers are often the fiddliest part of a form. I built PickTime to fix that: a clean, modern picker that needs one import and one <pick-time> tag. It works with any form out of the box, lets people type a time the way they would say it, follows their locale and looks after keyboard and screen reader users from the first click.

Objectives
Real Form Participation
Make the picker submit, reset and validate like a native input through ElementInternals, so FormData, form.reset(), required, min and max work without a hidden input or a submit handler.
Accessible by Default
Give every hour, minute and second segment ARIA spinbutton semantics, trap focus inside the open panel, announce the committed time to screen readers and keep the page's own tab order intact.
Typing That Just Works
Let people type the time the way they write it, such as 9:30 pm, 0930 or 21:30, and flag input that cannot be read as invalid instead of throwing.
Locale Aware and Easy to Theme
Take the hour cycle, day-period labels and separators from Intl, render the panel in the top layer with the Popover API so no parent can clip it, and allow styling through CSS custom properties and ::part().






Pick, Type, Submit
The PickTime live demo and playground, showing the picker in plain HTML and popular frameworks, typed entry, locale-driven clock formats, min and max ranges and custom themes.






