← Design system

Forms

Form controls live under <input-field>, an autonomous custom-element wrapper. The wrapper is the contract — it classifies the field and scopes the styling. Inside, bare HTML.

Text input

Text input — every state

    • Must be at least 8 characters.
    • Must include a number.

Textarea — every state

    • Description must be at least 100 characters.

Single checkbox

Checkbox group

Panes

Radio group

Study size

Choices — focused

The whole <label class='option'> picks up the focus ring (via :focus-within), since the label is the click target. Shown statically here via data-fakestate='focused'.

Radio group

Single checkbox — padded

Checkbox group — padded

Panes

Form with submit