Textarea

Multi-line text input for longer form content

Primitive

A textarea collects multi-line text that grows with its content. Use it for comments, messages, or descriptions; for a single line such as a name or email, use Input instead.

Preview

Installation

Usage

Examples

With Label

Pair the textarea with a Label for an accessible, clickable field name.

With Helper Text

Add helper text below the field for guidance or validation messages.

Write a brief description of your project. Markdown is supported.

Controlled

Use value and onChange to drive the textarea's value yourself.

0/500 characters

Disabled State

Set disabled to block input and dim the field.

Outline Variant

Use variant="outline" to match the outline Button: a card fill with a hairline border in light mode, a recessed fill with a faint ring in dark mode. The default tint already reads on the page, Cards, Dialogs, and popovers, so no field needs a per-surface variant.

VariantDescription
defaultA translucent tint that reads on any surface.
outlineThe outline Button's fill and hairline edge.

API Reference

Props

Upgrading

If you're reinstalling over an earlier version, check these changes:

BeforeNow
variant="elevated" for fields on Cards and DialogsRemoved. The default tint works on any surface, so drop the prop.
One filled stylevariant="outline" adds a bordered style, matching the outline Button.