Skip to main content

Text area

The text area component captures multi-line text input. Use it to collect descriptions, notes, comments, or other extended text content.

The component supports configurable height, character limits, and validation. For single-line text input, use text field.

Support
Targets (24)

Configure the following properties on the text area component.

Anchor to autocomplete
autocomplete
AutocompleteField | `${} ${AutocompleteField}` | `${} ${AutocompleteField}` | `${} ${} ${AutocompleteField}` | "on" | "off"
Default: 'on'

A hint about the intended content of the field for browser autofill.

When set to on (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.

When set to off, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.

Alternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.

Learn more about the set of autocomplete values supported in browsers.

Anchor to defaultValue
defaultValue
string

The initial value of the field when it first loads. Unlike placeholder, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.

Anchor to disabled
disabled
boolean
Default: false

Whether the field is disabled, preventing any user interaction.

Anchor to error
error
string

An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.

string

A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.

Anchor to label
label
string

The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.

Anchor to labelAccessibilityVisibility
labelAccessibilityVisibility
'visible' | 'exclusive'
Default: 'visible'

Controls whether the label is visible to all users or only to screen readers.

  • visible: The label is shown to everyone.
  • exclusive: The label is visually hidden but still announced by screen readers.
Anchor to maxLength
maxLength
number
Default: Infinity

Specifies the maximum number of characters allowed.

Anchor to minLength
minLength
number
Default: 0

Specifies the minimum number of characters allowed.

string

The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.

Anchor to readOnly
readOnly
boolean
Default: false

Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.

Anchor to required
required
boolean
Default: false

Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the error property.

number
Default: 2

A number of visible text lines.

Anchor to value
value
string

The current value for the field. If omitted, the field will be empty.

The text area component provides event callbacks for handling user interactions. Learn more about handling events.

<typeof tagName>

A callback fired when the text area loses focus.

Learn more about the blur event.

Anchor to change
change
<typeof tagName>

A callback fired when the text area value changes.

Learn more about the change event.

Anchor to focus
focus
<typeof tagName>

A callback fired when the text area receives focus.

Learn more about the focus event.

Anchor to input
input
<typeof tagName>

A callback fired when the user inputs data into the text area.

Learn more about the input event.


Anchor to Collect a gift messageCollect a gift message

Add a multi-line text input with a pre-filled gift message. This example displays a text area with a label, value, and configurable rows.

Collect a gift message

A multi-line text input area with a label for entering longer form content.

html

<s-text-area
label="Gift message"
value="Hope you enjoy this gift!"
rows={3}
></s-text-area>

Anchor to Limit character countLimit character count

Restrict input length and display the remaining character count. This example shows a text area with a maxLength of 200 characters.

html

<s-text-area
label="Gift message"
maxLength={200}
rows={4}
></s-text-area>

Anchor to Display read-only order notesDisplay read-only order notes

Show existing notes in a non-editable state. This example uses a text area with the readonly attribute to display order notes for confirmation.

html

<s-text-area
label="Order notes"
value="Please leave at front door."
readOnly
rows="3"
></s-text-area>

  • Label clearly: Write labels that describe the expected input, such as "Gift message" or "Order notes."
  • Set appropriate height: Use the rows property to match the expected content length. Short messages need fewer rows than detailed instructions.
  • Use character limits sparingly: Only apply maxLength when there's a real constraint. Unnecessary limits frustrate customers who need to write more.
  • Don't use for short input: For single-line values like names or codes, use text field instead.

Was this page helpful?