Default

<Textarea label="Your message" placeholder="Write your message here..." />

With description and error

Maximum 500 characters.

Feedback is required.

<Textarea
  label="Bio"
  description="Maximum 500 characters."
  placeholder="Tell us about yourself"
/>
<Textarea
  label="Feedback"
  withAsterisk
  error="Feedback is required."
/>

Resize

<Textarea label="Vertical resize" resize="vertical" />
<Textarea label="Both directions" resize="both" />
<Textarea label="No resize" resize="none" />

Sizes

<Textarea size="xs" label="xs" rows={2} />
<Textarea size="md" label="md" rows={2} />
<Textarea size="xl" label="xl" rows={2} />

Disabled

<Textarea label="Disabled" disabled value="Cannot be edited" />

Props

PropTypeDefaultDescription
idstringAssociates label with textarea via HTML for/id
labelReactNodeLabel rendered above the textarea
descriptionReactNodeHelper text below the label
errorReactNode|booleanError message; pass true for styles only
requiredbooleanMarks as required and adds asterisk
withAsteriskbooleanAdds asterisk without native required attribute
disabledbooleanDisables the textarea
size'xs'|'sm'|'md'|'lg'|'xl'Font size via design tokens
radius'xs'|'sm'|'md'|'lg'|'xl'|stringBorder-radius
placeholderstringPlaceholder text
valuestringPre-fills the textarea (uncontrolled SSR)
namestringForm field name
rowsnumber4Number of visible text rows
resize'none'|'vertical'|'horizontal'|'both''none'Controls whether the user can resize the textarea
classstringAdditional CSS class names
styleobjectInline styles