Textarea
A multi-line text input for longer free-form responses.
Overview
The Textarea field renders a resizable multi-line text box, ideal for capturing longer responses such as comments, feedback, descriptions, or addresses. Unlike the single-line Text Input, the textarea allows respondents to enter multiple paragraphs and use newline characters.
You can control the initial height via the rows property and limit the total character count with validation.maxLength. A live character counter is shown when a maxLength is configured.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| type | string | — | The field type identifier (e.g. "text", "email"). |
| label | string | — | Human-readable label shown above the field. |
| name | string | — | Unique machine name used as the data key in submissions. |
| required | boolean | false | When true the form cannot be submitted without a value. |
| placeholder | string | undefined | Ghost text shown inside the input when empty. |
| defaultValue | any | undefined | Pre-filled value when the form loads. |
| hidden | boolean | false | Hides the field from the rendered form (still submitted). |
| disabled | boolean | false | Renders the field as read-only and non-interactive. |
| description | string | undefined | Helper text displayed below the field label. |
| className | string | undefined | Additional CSS class applied to the field wrapper. |
| rows | number | 4 | Initial visible row count (height) of the textarea. |
| validation.minLength | number | undefined | Minimum number of characters required. |
| validation.maxLength | number | undefined | Maximum number of characters allowed. |
| showCharCount | boolean | false | Shows a live character counter below the field. |
JSON Schema
{
"type": "textarea",
"label": "Additional Comments",
"name": "comments",
"required": false,
"placeholder": "Share any additional feedback...",
"rows": 5,
"showCharCount": true,
"validation": {
"maxLength": 500
}
}