Skip to content

Textarea Field

Textarea allows users to provide multiple lines of text.

Overview

Textareas allow for multiple lines of text and function very similarly to Text Fields with the addition of the rows property, which determines how tall the input will be.

Usage

Edit live code

Content

Textarea is not resizeable by default. Make the height of the textarea proportional to the amount of text expected and provide a scroll if the input exceeds the set height.

Variations

Custom row amount

Set a custom amount of rows to show if the default is not right for the content users are expected to enter.

Edit live code

Resizable

In some cases it can be useful to set the textarea to be resizable if it is not clear how much text will be entered.

Edit live code

Character Limit

Set characterLimit to show a live character count against a defined limit. The count updates as the user types and is shown from the start, with no threshold. Typing past the limit is never blocked — there's no hard stop — the counter switches to an error style instead, and it's up to your form validation to surface an error once the field is submitted over the limit.

Edit live code
Edit live code

Do not use the native maxLength attribute alongside a character limit — it silently blocks further typing (a "hard stop"), which is exactly what this pattern is designed to avoid. Use characterLimit instead.

Autocomplete

Browser autofill on this field is controlled by a transitional theme property. Learn how to enable it in your app.

Properties

NameValuesDefault

id (required)

String

label (required)

String

optional

Boolean

false

hint

ReactNode

error

ReactNode

characters

Number

25

characterLimitShows a live character count against this limit. Does not block typing past it - pair with an error message on submit.

Number

fullWidth

alwaysneversmall

small

rows

Number

3

resizable

Boolean

false

autoCompleteDefaults to "off" when the disableAutocomplete theme config flag is enabled (see the Theme guide); pass autoComplete to override for a specific field.

String

...

JSX.IntrinsicElements["textarea"]