Usage
Input is the single-line text field for forms, toolbars, and filter bars. It combines an optional label, the field itself, optional lead and tail icons, affixes for units and prefixes, helper text, and validation states. The mental model is "one fact per field"—with the right keyboard, the right format, and the right validation for that fact. Choose a semantic type (email, tel, password, number) rather than plain text when one exists; the right type gives mobile operators the correct keyboard without the app rewriting the OS.
*
Used to dial the caller back if we lose the line.
TextArea.Select or Combobox.IntlPhoneNumberInput when that's the product standard.| Aspect | Purpose | Emphasis |
|---|---|---|
type (email, tel, password, …) | Invokes the right software keyboard and validation hints | Match type to data; don't default to text when a semantic type exists |
| Lead / tail icons | Quick recognition and inline actions | Icons supplement labels; never the only error cue |
| Affixes | Static context (unit, protocol) | Keep short; no editable text inside affixes |
| Masking | Formats input as users type | Show expected shape in placeholder or helper; expose raw value to logic |
| With select | Combines scope and free text | Lead select when it sets format; tail select when it sets unit or scope |
formatMessage and test long translations inside the field width.autoComplete tokens for common fields; disable for sensitive one-off values.Do
Don't
label associates with id; helper and error copy use aria-describedby; required and invalid state are exposed accessibly; focus into an invalid field reads the error. See Accessibility for the full contract.