Label — identifies the field
Container — border, background, radius
Placeholder / value text
Helper / error text
Resize handle
Standard multi-line input for messages, descriptions, and notes.
Max 500 characters
SM (80px min-height) and MD (120px min-height).
Textarea shares the same 6 states as Input: default, hover, focus, error, disabled, and readonly.
Default
Hover
Focus
Error
This field is required
Disabled
Read only
Please enter a message of at least 20 characters
Helper text
| Token | Value | Description |
|---|---|---|
input/background/default | #ffffff | Default fill |
input/background/disabled | #e1e1e1 | Disabled / readonly fill |
input/border/default | #cbd5e1 | Default border |
input/border/focus | #318272 | Focus border (brand-700) |
input/border/error | #ef4444 | Error border |
focus/color | teal/30% | Focus ring shadow |
Radius/sm | 4px | Corner radius |
Stroke/sm | 1px | Border width |
scale/12 | 12px | Vertical padding SM |
scale/16 | 16px | Horizontal padding MD |
| Prop | Type | Default | Description |
|---|---|---|---|
size | "sm" | "md" | "md" | Height and padding scale |
state | "default" | "hover" | "focus" | "error" | "disabled" | "readonly" | "default" | Visual state |
placeholder | string | — | Placeholder text |
value | string | — | Controlled value |
rows | number | 4 | Visible row count hint |
maxLength | number | — | Maximum character limit |
label | string | — | Field label |
helperText | string | — | Supporting text below the field |
errorText | string | — | Validation error message |
disabled | boolean | false | Prevents interaction |
readOnly | boolean | false | Value is displayed but not editable |
Do
Don't