TextArea
Multi-line text input with label, helper text, and validation states.
At a glance
- Multi-line variant of TextInput — vertical instead of horizontal.
- Forwards every native TextInput prop (
value,onChangeText,placeholder,multilineis set automatically,numberOfLines, …). - Pair with
Fieldfor label, description, error wiring, and accessibleid/aria-*attributes.
Preview
Use with Field
For labelled text areas with description, error, and a11y wiring, wrap in <Field>:
With validation error:
See Field for the full API. For custom layouts (e.g., a control + button row), use the compound API.
rows and resize
rows sets the field's minimum height in lines (web maps to the
native rows attribute; native maps to a computed minHeight from the
line height). resize controls the resize affordance on web —
'none' to lock the size, 'vertical' to allow vertical drag,
'both' for free resize. Native is always size-locked.
resize | Web behavior | Native behavior |
|---|---|---|
none (default) | No resize handle | Fixed height |
vertical | Drag-resize bottom edge | Fixed height |
both | Drag-resize corner | Fixed height |
leading and trailing
Inline decorations inside the field — pinned to the top-left
(leading) and top-right (trailing) corners so they don't fight the
text content as it grows.
containerClassName
Tailwind classes for the outer wrapper when used without <Field>. Use className
on <Field> for grid sizing when wrapped.
disabled
Set disabled={true} to block all input, dim the field, and forward
aria-disabled to assistive technology. The prop can be set directly on
TextArea or inherited from a wrapping <Field disabled>.
Native preview
Props
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | — | — |
containerClassName | string | — | Pass through a custom wrapper className |
disabled | boolean | — | — |
leading | ReactNode | — | — |
name | string | — | — |
resize | enum | vertical | On web, controls the underlying `<textarea>`'s resize handle. Ignored on native (where height is determined by `numberOfLines`). @defaultValue 'vertical' |
trailing | ReactNode | — | — |