Textarea

A multi-line text input component for longer text content and messages.

Sizes

regular is the default. small uses smaller text for dense forms and side panels.

Ask it the way a customer would.
Visible to everyone in this workspace.

Error states

Set error for the error style and errorMessage for the text below the field.

Add a brand description.
Keep notes under 500 characters.

Disabled

A disabled textarea can't be focused or edited.

Only admins can edit this.
Notes are locked after a report is shared.

Read only

A read-only textarea can be focused and copied from, but not edited.

Managed by your workspace.
Added by Maya.

Chromeless

variant="chromeless" drops the field's background, border, padding, shadow, and hover tint so the text sits on whatever surface it is embedded in. Reach for it when editing text in place — in a document, a card, or a title row — where a visible input box would read as a form rather than as the text being edited. The surrounding container supplies the affordance instead.

Prefer this over re-styling a control field through contentClassName: the control surface sets dark:, hover:, and focus-visible: classes that a caller's unprefixed overrides cannot reach.

A control field, for comparison

Properties

label
string

Label text for the textarea field

placeholder
string

Placeholder text when textarea is empty

disabled
boolean

Whether the textarea is disabled

Default: false

readOnly
boolean

Whether the textarea is read-only

Default: false

required
boolean

Whether the textarea is required

Default: false

size
'small''regular'

Size of the textarea

Default: regular

variant
'control''chromeless'

Whether the field renders its own surface. 'chromeless' drops the background, border, padding, shadow, and hover tint for editing text in place.

Default: control

id
string

Native field ID, overridden by inputRest.id. Generated when both are omitted.

hint
string

Helper text displayed below the textarea

value
string

Controlled textarea value

error
boolean

Whether to display the textarea in error state

Default: false

errorMessage
string

Error message shown below the textarea while error is true

onChange
(e: ChangeEvent<HTMLTextAreaElement>) => void

Callback function to handle input change

endLabel
React.ReactNode

End label to display below the textarea

fieldSizing
boolean

Whether to use fixed or content field sizing

Default: true

className
string

Additional CSS classes to apply to the textarea container

contentClassName
string

Additional CSS classes to apply to the textarea element

inputRest
ComponentPropsWithoutRef<'textarea'>

Extra props spread onto the native textarea element

containerRef
RefObject<HTMLDivElement>

Ref to the container element