An input field with built-in email format validation.
Overview
The Email field renders an input[type=email] element and automatically validates that the entered value conforms to standard email format (e.g. user@example.com). On mobile devices, browsers will present a keyboard layout optimized for email entry.
Beyond format validation, you can restrict submissions to a specific domain by using the validation.pattern property with a domain-matching regex.
Note: The email field does not send a verification email. It only validates the format. To verify ownership, implement an email confirmation flow in your backend.
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. |
| validation.pattern | string | undefined | Regex to restrict to specific domain (e.g. @company\.com$). |
| validation.patternMessage | string | undefined | Message shown when domain restriction fails. |
JSON Schema
{
"type": "email",
"label": "Work Email",
"name": "work_email",
"required": true,
"placeholder": "you@company.com",
"validation": {
"pattern": "@company\.com$",
"patternMessage": "Please use your company email address"
}
}