Chapter 2 — Components · Section 08

Form Inputs

Minimalist bottom-border style — no background fill, only a border-bottom that transitions from outline-variant/40 at rest to primary on focus. Labels float above on focus or when value is present.

Floating labels are not placeholders. The visible label must always exist as text — never use a placeholder as the only label. Error messages use role="alert" so screen readers announce them on appearance. All inputs must have aria-invalid set when in error state.

Basic Fields

Field States

Only letters, numbers, and underscores

Textarea

State Reference

StateBorder-bottomLabel colorNotes
Restoutline-variant/40on-surface-variantLabel at base position
Focusprimary (2px)primaryLabel floats up, border thickens
Activeprimary (2px)primarySame as focus, value entered
Errorsecondary (2px)secondaryaria-invalid="true", role="alert" on message
Disabledoutline-variant/20on-surface-variant/40opacity-40, cursor-not-allowed