Forms

The form elements prioritize clarity, accessibility, and user confidence. Every input field provides clear visual feedback about its state, helping users understand what's expected and whether their input is valid.

Principles

Visual Feedback System

  • Default State: Neutral grey border indicates ready for input
  • Hover State: Darker border shows the field is interactive
  • Focus State: Darkest border (grey-1300) indicates active input
  • Validation States: Color-coded borders provide immediate feedback

Accessibility Features

  • 44px Touch Targets: All form fields meet minimum touch size requirements
  • Clear Focus Indicators: High contrast borders for keyboard navigation
  • Descriptive Labels: Every field has a clear, descriptive label
  • Error Association: Validation messages are programmatically linked to fields

Input Fields

Text Inputs

Validation States

This field is valid

This field contains an error

Please double-check this field

Textarea Fields

Default Textarea

Textarea with Content

Complete Form Examples

Contact Form

Registration Form

Implementation

CSS Classes

<!-- Input Fields -->
<input className="input-field" type="text" />
<input className="input-field error" type="email" />
<input className="input-field success" type="text" />

<!-- Textarea -->
<textarea className="textarea-field"></textarea>

<!-- Validation Messages -->
<p className="validation-message error">
  Error message
</p>

Best Practices

  • Always provide clear, descriptive labels
  • Use appropriate input types (email, tel, url, etc.)
  • Provide real-time validation feedback
  • Group related fields logically
  • Use placeholder text for examples, not instructions
  • Ensure all fields are keyboard accessible