RRigdesign system
Inputs

Input field

Single-line text entry with label, helper text and validation.

Examples

Shown to your team.
Use letters and numbers only.

States

Rendered states (visual reference; the live example above is the accessible one)
DefaultHoverFocus visiblePressedDisabled
Text

Anatomy

Input field anatomy
#PartDescriptionPresence
1LabelAbove the field, always visibleRequired
2FieldPill, 44 / 52px, 16px paddingRequired
3Leading / trailing icon20 / 16px, decorativeOptional
4Helper textLinked by aria-describedbyOptional
5Error messageIcon plus text, replaces helperOptional

Specifications

HeightsLarge 52px · Medium 44px
Padding16px horizontal · 12px vertical
TypeManrope Medium 14px
Icon size20px (Large) · 16px (Medium)

Interaction

Keyboard
KeyResult
TabMoves focus in; the whole value is not selected
TypingEdits the value
EscDoes nothing by default; clears only in search fields
Pointer and touch
TriggerResponse
HoverBorder strengthens
FocusBorder turns indigo with a 3px glow
ValidationOn blur or on submit, not on every keystroke

Accessibility

role · textbox

1.3.1Info and Relationships1.3.5Identify Input Purpose1.4.11Non-text Contrast3.3.1Error Identification3.3.2Labels or Instructions3.3.3Error Suggestion4.1.2Name, Role, Value
Requirements
RequirementHow Rig meets it
LabelA real <label for>. A placeholder is a hint, never the label.
Purposeautocomplete tokens (email, name, tel) satisfy 1.3.5
Typetype=email, tel, url bring the right mobile keyboard
RequiredMark it in text and with required; do not rely on an asterisk alone
Erroraria-invalid="true", message linked by aria-describedby, and the text says how to fix it
BoundaryBorder is 3:1 against the surface (WCAG 1.4.11)

Read the matching WAI pattern ↗

Usage

Do and don’t
DoDon’t
Keep labels short and above the fieldDo not use a placeholder as a label
Say how to fix an error, not just that there is oneDo not clear the field when an error appears