Text Input
A single-line text input for short free-form responses such as names, titles, or short answers.
Overview
The Text Input field renders a standard HTML input[type=text] element. It is the most general-purpose field and is suitable for any short, unformatted text response. For longer text, use the Textarea field. For structured text like email addresses or phone numbers, use the dedicated field types which add appropriate validation.
Text Input supports minimum and maximum length validation, regex pattern matching, and custom error messages. It also supports a default value and a placeholder hint.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| id | string | — | Unique field identifier (UUID in the builder). |
| type | string | text | Must be "text". |
| 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). |
| placeholder | string | undefined | Ghost text inside the control when empty. |
| 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. |
JSON Schema
{
"type": "text",
"label": "Full Name",
"name": "full_name",
"required": true,
"placeholder": "Enter your full name",
"description": "As it appears on your ID",
"validation": {
"minLength": 2,
"maxLength": 100
}
}Common Use Cases
- First name, last name, or full name fields
- Job title or company name
- Street address line 1 / line 2
- Short answer survey questions
- Product or event names in administrative forms