← Components

Text input

States
Default
Filled
Focus
⚠ Email must include @ and a domain
Error
Disabled
With prefix / suffix / icon
TZS
Prefix (currency)
kg
Suffix (unit)
Leading icon
Sizes — sm · md · lg
sm · 28px
md · 36px
lg · 44px

Textarea

States
Visible to your team only
Default
⚠ Provide at least 20 characters explaining the return
Error
Disabled

Select / dropdown

States
Default (selected)
⚠ Select a currency to proceed
Error
Disabled

Checkbox

All states including indeterminate
Delivery options
Default / checked / indeterminate / disabled

Radio button

Radio group — one selection
Invoice type
Default / selected / disabled

Toggle / switch

On · Off · Disabled

Date picker

Date · Date-time inputs
Date
Date-time
⚠ Invoice date cannot be in the future
Error

File upload

Drop zone · File list
purchase-order-042.pdf 1.2 MB
delivery-receipt-scan.jpg 430 KB

State reference

State Trigger Visual change Markup
Default1px --border-medium border, white bg<input>
HoverMouse overBorder darkens to 28% opacityCSS :hover
FocusTab / clickAmber border + 3px amber focus ringCSS :focus
FilledUser typesText color switches to --text-primary
ErrorBlur with invalid valueCoral border, error message below fieldaria-invalid="true"
Disableddisabled attr50% opacity, surface-2 bg, not-allowed cursordisabled