Skip to content

TextArea

Multiline text input. Shares the same visual states and shape options as Input. Use for longer-form content: bios, messages, descriptions, comments.

When to use: Any free-form text that may span multiple lines.

When not to use: Single-line inputs — use Input. Tag entry — use TagInput.

import { TextArea } from '@/components';
<TextArea
value={bio}
onChangeText={setBio}
placeholder="Tell us about yourself…"
numberOfLines={4}
/>
PropTypeDefaultDescription
valuestringControlled value (required)
onChangeText(text: string) => voidChange handler (required)
placeholderstringPlaceholder text
numberOfLinesnumber3Visible line height
isErrorbooleanfalseError state styling
isDisabledbooleanfalsePrevents interaction
shape'default' | 'pill''default'Border radius (default is more appropriate for TextArea)
testIDstringFor testing
<TextArea
value={message}
onChangeText={setMessage}
placeholder="Write a message to your team…"
numberOfLines={6}
isError={!!messageError}
/>
{messageError && <Text variant="caption" color="error">{messageError}</Text>}
  • Input — single-line variant
  • TagInput — multi-value tag entry