Skip to content

Field

Text fields, text areas, checkboxes, radios, switches, ranges and choice cards, with their labels, hints and errors, on native form controls.

  • .aparte-btn
On this page
Open

Every form control a settings screen needs, drawn on the browser’s own elements. .aparte-field is one recipe for <input>, <textarea> and <select> alike: border, background, radius, padding, focus ring, placeholder. .aparte-checkbox, .aparte-radio, .aparte-switch and .aparte-range repaint the native controls, so they keep their keyboard behaviour and their form value.

Around them: .aparte-field-label, .aparte-field-hint, .aparte-field-warning, .aparte-field-error, a .aparte-field-group that puts a prefix or a suffix against the field, and .aparte-fieldset for a set of choices.

Open

--sm and --lg follow the button sizes, so a field and a button in one row line up. An error is aria-invalid on the field, which draws it, and a message the field points to.

Open

.aparte-field-choice--boxed turns a radio or a checkbox and its text into a card the whole of which can be clicked.

VariableDefault
--aparte-switch-thumb-shadow0 1px 2px rgba(0, 0, 0, 0.15)
--aparte-range-thumb-shadow0 1px 2px rgba(0, 0, 0, 0.15)
--aparte-color-size32px
--aparte-meter-height8px
--aparte-field-textarea-min-height80px
--aparte-checkbox-size18px
--aparte-radio-size18px
--aparte-radio-dot-size8px
--aparte-switch-width40px
--aparte-switch-height22px
--aparte-switch-thumb-inset2px
--aparte-range-thumb-size16px
--aparte-range-track-height4px
--aparte-field-choice-gapvar(--aparte-space-5)
--aparte-field-choice-paddingvar(--aparte-space-4) var(--aparte-space-5)
--aparte-field-choice-radiusvar(--aparte-radius-lg)
--aparte-meter-trackvar(--aparte-surface-3)
--aparte-meter-optimumvar(--aparte-success)
--aparte-meter-suboptimumvar(--aparte-warning)
--aparte-meter-poorvar(--aparte-error)
--aparte-output-paddingvar(--aparte-space-1) var(--aparte-space-2)
--aparte-output-bgvar(--aparte-surface-2)
--aparte-field-paddingvar(--aparte-space-2) var(--aparte-space-3)
--aparte-field-padding-smvar(--aparte-space-1) var(--aparte-space-2)
--aparte-field-padding-lgvar(--aparte-space-3) var(--aparte-space-4)
--aparte-field-radiusvar(--aparte-radius-md)
--aparte-field-sizevar(--aparte-btn-size-lg)
--aparte-field-size-smvar(--aparte-btn-size-md)
--aparte-field-size-lgvar(--aparte-btn-size-xl)
--aparte-checkbox-intent—
--aparte-checkbox-on-intent—
--aparte-radio-intent—
--aparte-range-intent—
--aparte-switch-intent—
--aparte-switch-thumb-size—
--aparte-switch-track—

.aparte-btn · .aparte-checkbox · .aparte-checkbox--danger · .aparte-checkbox--info · .aparte-checkbox--neutral · .aparte-checkbox--primary · .aparte-checkbox--secondary · .aparte-checkbox--success · .aparte-checkbox--warning · .aparte-color · .aparte-field · .aparte-field--lg · .aparte-field--sm · .aparte-field--textarea · .aparte-field-choice · .aparte-field-choice--boxed · .aparte-field-choice--selected · .aparte-field-choice__body · .aparte-field-error · .aparte-field-group · .aparte-field-group__prefix · .aparte-field-group__suffix · .aparte-field-hint · .aparte-field-label · .aparte-field-required · .aparte-field-row · .aparte-field-warning · .aparte-fieldset · .aparte-meter · .aparte-output · .aparte-radio · .aparte-radio--danger · .aparte-radio--info · .aparte-radio--neutral · .aparte-radio--primary · .aparte-radio--secondary · .aparte-radio--success · .aparte-radio--warning · .aparte-range · .aparte-range--danger · .aparte-range--info · .aparte-range--neutral · .aparte-range--primary · .aparte-range--secondary · .aparte-range--success · .aparte-range--warning · .aparte-switch · .aparte-switch--danger · .aparte-switch--info · .aparte-switch--neutral · .aparte-switch--primary · .aparte-switch--secondary · .aparte-switch--success · .aparte-switch--warning

  • These are native controls: labels, keyboard, form submission and validation work as the browser makes them work. Tie each label to its field with for and id.
  • An error is announced through aria-invalid and aria-describedby pointing at the message.
  • A switch is a checkbox with role="switch".
  • Select — a dropdown with groups and search, when a native <select> is not enough.
  • Button — the sizes fields follow.