Skip to main content

Configure the following properties on the TextArea component.

Anchor to details
details
string

The additional text to provide context or guidance for the field. This text is displayed along with the field and its label to offer more information or instructions to the user. This will also be exposed to screen reader users.

Anchor to disabled
disabled
boolean
Default: false

Whether the field is disabled, preventing user interaction. Use when the field is temporarily unavailable due to application state, permissions, or dependencies.

Anchor to error
error
string

An error message to indicate a problem to the user. The field will be given specific stylistic treatment to communicate issues that must be resolved immediately.

string

A unique identifier for the element used for targeting with CSS, JavaScript, or accessibility features.

Anchor to label
label
string

The content to use as the field label that describes the text information being requested.

Anchor to maxLength
maxLength
number
Default: Infinity

The maximum number of characters allowed in the text field.

Anchor to placeholder
placeholder
string

A short hint that provides guidance about the expected value of the field.

Anchor to required
required
boolean
Default: false

Whether the field needs a value. This requirement adds semantic value to the field but doesn't cause an error to appear automatically. Use the error property to present validation errors.

number
Default: 2

The number of visible text lines that determines the initial height of the text area.

Anchor to value
value
string

The current text content entered in the field. An empty string means no text is entered.

The text area component supports slots for additional content placement within the field. Learn more about using slots.

Anchor to accessory
accessory
HTMLElement

The additional content to be displayed in the field. Commonly used to display clickable text or action elements. Only button and clickable components with text content only are supported in this slot. Use the slot="accessory" attribute to place elements in this area.

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

(event: <"s-text-area">) => void

Called when the element loses focus.

Anchor to change
change
(event: <"s-text-area">) => void

Called after editing completes, typically on blur.

Anchor to focus
focus
(event: <"s-text-area">) => void

Called when the element receives focus.

Anchor to input
input
(event: <"s-text-area">) => void

Called when the user makes any changes in the field.


Anchor to Capture multi-line text with a text areaCapture multi-line text with a text area

Capture multi-line text input using a text area component. This example shows a basic text area with a label for extended content.

Capture multi-line text with a text area

Capture multi-line text input using a text area component. This example shows a basic text area with a label for extended content.

Capture multi-line text with a text area

<s-text-area
label="Shipping address"
value="1776 Barnes Street, Orlando, FL 32801"
/>

Anchor to Add accessory buttonsAdd accessory buttons

Add action buttons to the text area using the accessory slot for quick actions like clearing text or formatting content. This example shows how to use s-button and s-clickable components in the accessory slot, providing inline functionality within the multi-line input context.

Add accessory buttons

<s-text-area
label="Product description"
placeholder="Enter product details..."
value="This is a sample product description"
>
<s-button slot="accessory" onClick={() => console.log('Clear')}>
Clear
</s-button>
</s-text-area>;

Anchor to Configure rows and character limitsConfigure rows and character limits

Configure the number of visible rows and character limits to control text area size and input length. This example shows how to use the rows property to set initial height and maxlength to limit content, ensuring appropriate sizing for different types of text input.

Configure rows and character limits

<s-text-area
label="Order notes"
placeholder="Add special instructions..."
rows={5}
maxLength={500}
onInput={(event) => console.log('Characters:', event.currentTarget.value?.length)}
/>

Anchor to Handle text input eventsHandle text input events

Subscribe to text area events to respond when merchants enter or modify text. This example demonstrates handling onChange, onInput, onFocus, and onBlur events for autosave functionality, character counting, or real-time validation of longer text content.

Handle text input events

<s-text-area
label="Customer feedback"
placeholder="Enter feedback..."
onInput={(event) => console.log('Input:', event.currentTarget.value)}
onChange={(event) => console.log('Change:', event.currentTarget.value)}
onFocus={(event) => console.log('Focused')}
onBlur={(event) => console.log('Blurred')}
/>

  • Set appropriate row count: Use 2-3 rows for brief notes, 4-6 for descriptions, and more for extensive content.
  • Show character limit feedback: When approaching maxLength, display remaining characters in the details text.
  • Write descriptive labels: Use specific labels like "Product Description" or "Special Instructions" rather than generic terms.

The accessory slot supports only button and clickable components. Other component types can't be used for field accessories.


Was this page helpful?