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 |
|---|---|---|---|
| id | string | — | Unique field identifier (UUID in the builder). |
| type | string | textarea | Must be "textarea". |
| label | string | — | Human-readable label shown above the field or step heading. |
| required | boolean | false | When true, the form cannot submit without a value. |
| isHidden | boolean | false | Hides the field from respondents (may still store defaults). |
| isDisabled | boolean | false | Renders the field read-only. |
| instruction | string | undefined | Help text shown below the label (not the same as placeholder). |
| validation.min | number | undefined | Minimum length (text) or minimum numeric value (number) or digit count (phone). |
| validation.max | number | undefined | Maximum length, numeric bound, or digit count (phone). |
| validation.pattern | string | undefined | Regex the value must match. |
| validation.message | string | undefined | Custom error when validation fails. |
| conditionalRules | array | undefined | Show this field when any rule matches another field's value. |
| logic | object | undefined | Simple visibility: depends_on + show_if_value. |
| reporting | object | undefined | Admin submissions table: includeInTable, labelOverride, sortable, filterable. |
| integrationKey | string | undefined | Stable alias for external integrations instead of id. |
| textareaRows | number | 4 | Visible row count (height). |
| textareaCols | number | undefined | Optional fixed column width. |
| validation.language | "en" | "ne" | "any" | undefined | Restrict input language when set. |
JSON Schema
{
"type": "textarea",
"label": "Additional Comments",
"name": "comments",
"required": false,
"placeholder": "Share any additional feedback...",
"rows": 5,
"showCharCount": true,
"validation": {
"maxLength": 500
}
}Common Use Cases
- Open-ended feedback, support tickets, and detailed explanations
- Cover letters, project briefs, and creative submission descriptions
- Multi-line addresses or directions when formatting varies
- Internal notes captured from staff or reviewers
- Any response that benefits from paragraphs instead of a single line