Form controls

Sizes come in two steps, small and normal. Below md, inputs grow and their text goes to 15px — under that, iOS zooms the page on focus, which is a behaviour rather than a style and so is ours.

Checkbox

Indeterminate and the strong emphasis exist; strong is for a checkbox on white, where the subtle outline all but disappears.

Light
Dark

Select button

Three variants: solid, tinted, track. The grid/list switch on an index page is track.

Light
Dark

Select

Single choice. Add a search inside the panel with one input rather than a different component.

Light
Dark

Configured: the navbar location picker

A pill trigger with a map-pin template, a panel header, and rows carrying a type badge. Nothing bespoke — the same lib-select as above.

Light
Dark

Multi-select

Search is on by default here, unlike the single select, and a 24px select-all checkbox sits beside it in the panel header — no visible label, so it needs one in a design that shows the panel. Chip mode shows at most two chips before collapsing to a count; comma mode lists three. That one-item difference is inherited behaviour we kept deliberately, so design for the count appearing at the third selection.

Lightchip · 1 selectedchip · 2 selectedchip · 3 selected — collapsescomma · 3 selected — still lists
Darkchip · 1 selectedchip · 2 selectedchip · 3 selected — collapsescomma · 3 selected — still lists

Configured: the chart aspect picker

The same control as a labelled form field — small, full width, plain rows, no panel header. While the options load it is replaced by a skeleton rather than shown empty, which is the pattern for any select fed by a request.

LightAspectAspect, loading
DarkAspectAspect, loading

Text input

Light
Dark

Colour picker

A native colour input, hex only. The swatch panel is the browser's and the operating system's, so it cannot be designed or restyled -- design the trigger, not the picker.

Light#1F5FE0
Dark#1F5FE0

Picklist

Click to select then move, or double-click. Deliberately no drag-and-drop and no within-list reordering: a design showing drag handles or up/down arrows is asking for new work. Each list scrolls at 14rem.

Light
Available
Selected & ordered
Dark
Available
Selected & ordered

Badge and skeleton

A skeleton stands in for content that is loading. Every list needs one designed, or it flashes empty.

Light3 New
Dark3 New