HomeProjects

Picking a time should feel effortless. PickTime makes it simple, clean and ready for any form.

Client
Open Source
The Context

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.

The Intent

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().