RRigdesign system
Inputs

Form

Container that organises inputs, switches, radios, checkboxes and actions with uniform spacing.

Examples

Invite a teammate

We send the invite here.
Role

States

DefaultFocusError

Anatomy

Form anatomy
#PartDescriptionPresence
1TitleNames the form (aria-labelledby)Required
2Fields24px vertical gap, 16px between paired fieldsRequired
3Error summaryAppears on submit, focus moves to itOptional
4ActionsPrimary on the right, Cancel as neutralRequired

Specifications

Inner padding40px
Vertical gap24px between children
Field row gap16px horizontal for dual inputs
RadiusMatches the core card system

Interaction

Keyboard
KeyResult
TabFollows visual order
EnterSubmits from a text field
EscDoes nothing; never discards input
Pointer and touch
TriggerResponse
Submit with errorsSummary appears and takes focus; each item links to its field
BlurValidates one field

Accessibility

role · form

1.3.1Info and Relationships3.3.1Error Identification3.3.2Labels or Instructions3.3.3Error Suggestion4.1.3Status Messages
Requirements
RequirementHow Rig meets it
Structure<form>, <label>, <fieldset> and <legend> in that order
ErrorsSummary with role="alert", linked items, and field-level messages (WCAG 3.3.1, 3.3.3)
RequiredState it in text
Redundant entryDo not ask for the same data twice (WCAG 3.3.7)

Read the matching WAI pattern ↗

Usage

Do and don’t
DoDon’t
Group related fieldsDo not validate on every keystroke
Preserve what the person typed on errorDo not use placeholders as labels

Notes from the Figma file

  • Validation state propagates from the form to each sub-field.