Forms

Field .

Label + input/textarea com min-height 48px, ids automáticos e a11y de required.

Field — sub-component

Label + input/textarea: 8px label→control gap, min-height 48px, 16px font-size. Required carries * indicator (not color-only) + native required attr. Hint text wired with aria-describedby. Focus ring: var(--focus-ring) — surface-aware, no raw hex.

type="text" · required

type="email" · required · with hint

Used only to reply to your message.

type="textarea" · optional

A11y checklist

  • Every input: <label for> wired to <input id> — always associated
  • Required: native required attr + visible * (not color-only)
  • Hint text: aria-describedby wires hint to its input
  • font-size:16px on all inputs — prevents iOS auto-zoom
  • :focus-visible ring — visible on all surfaces, keyboard reachable