Field Types
Explore all 20+ field types available in FormWork.
FormWork provides over 20 field types organized into categories. Each type is designed for specific use cases with built-in validation and configuration options.
Atomic Fields
Single-value input fields that collect one piece of information.
Text
Basic single-line text input.
| Config Option | Description |
|---|---|
min_length | Minimum character count |
max_length | Maximum character count |
input_mode | Keyboard hint (text, numeric, tel, email, url) |
autocapitalize | Auto-capitalization behavior |
Email address input with built-in format validation.
Automatically validates that input contains @ and follows email format.
URL
Web address input with protocol validation.
Validates that input starts with http:// or https://.
Textarea
Multi-line text input for longer content.
| Config Option | Description |
|---|---|
min_length | Minimum character count |
max_length | Maximum character count |
rows | Number of visible text rows (1-20) |
resize | Resize behavior (none, vertical, horizontal, both) |
Hidden
Invisible field for storing data that shouldn’t be edited by users.
Useful for:
- Tracking parameters
- Pre-populated values from integrations
- Internal identifiers
Number
Numeric input with optional constraints.
| Config Option | Description |
|---|---|
min | Minimum value |
max | Maximum value |
step | Increment step |
decimal_places | Number of decimal places (0-10) |
display_prefix | Prefix (e.g., ”$“) |
display_suffix | Suffix (e.g., “kg”) |
Date
Date picker input.
| Config Option | Description |
|---|---|
min_date | Earliest selectable date (YYYY-MM-DD) |
max_date | Latest selectable date |
disabled_days_of_week | Days to disable (0=Sunday to 6=Saturday) |
Time
Time input.
| Config Option | Description |
|---|---|
min_time | Earliest time (HH:MM) |
max_time | Latest time |
step | Time step in seconds |
DateTime
Combined date and time picker.
| Config Option | Description |
|---|---|
min_datetime | Earliest datetime (YYYY-MM-DDTHH:MM) |
max_datetime | Latest datetime |
Toggle
Boolean on/off input.
| Config Option | Description |
|---|---|
display_style | Visual style (checkbox, toggle, rich_toggle) |
true_label | Label when checked |
false_label | Label when unchecked |
require_true | Require the toggle to be on |
Select
Dropdown selection from a list of options.
| Config Option | Description |
|---|---|
options | Array of {id, label, value} objects |
allow_other | Allow custom “other” input |
Options can also come from a Data Table using options_data_source.
Multiselect
Multiple selection from a list of options.
| Config Option | Description |
|---|---|
options | Array of {id, label, value} objects |
max_selections | Maximum number of selections |
Radio
Single selection displayed as radio buttons.
Same configuration as Select but displayed inline.
Slider
Numeric input displayed as a range slider.
| Config Option | Description |
|---|---|
min | Minimum value |
max | Maximum value |
step | Increment step |
Phone
Phone number input with country code support.
| Config Option | Description |
|---|---|
default_country_code | Default country (2-3 character code) |
Password
Password input with optional strength requirements.
| Config Option | Description |
|---|---|
min_length | Minimum password length |
strength_rules.require_uppercase | Require uppercase letter |
strength_rules.require_lowercase | Require lowercase letter |
strength_rules.require_number | Require number |
strength_rules.require_special | Require special character |
Rating
Star rating or similar input.
| Config Option | Description |
|---|---|
style | Display style (stars, hearts, numbers, emotions) |
min | Minimum rating |
max | Maximum rating |
label_low | Label for low end |
label_high | Label for high end |
Signature
Digital signature capture.
| Config Option | Description |
|---|---|
size | Canvas size (compact, standard, large) |
Signatures are stored as PNG data URLs.
File
File upload field.
| Config Option | Description |
|---|---|
allowed_types | Array of allowed MIME types |
max_file_size | Maximum file size in bytes |
min_files | Minimum number of files |
max_files | Maximum number of files (up to 20) |
multiple | Allow multiple file selection |
Templated Fields
Fields that automatically generate subfields.
Name
Structured name input with configurable parts.
| Config Option | Description |
|---|---|
show_title | Include title/prefix field |
show_middle_name | Include middle name field |
show_suffix | Include suffix field |
Generates subfields: _title, _first_name, _middle_name, _last_name, _suffix
Address
Structured address input with lookup support.
| Config Option | Description |
|---|---|
show_street | Include street field |
show_street2 | Include second address line |
show_city | Include city field |
show_state | Include state/province field |
show_postcode | Include postal code field |
show_country | Include country field |
country_mode | Country selection mode (none, all, specific, locked) |
default_country | Default country code |
allowed_countries | Allowed country codes (for specific mode) |
enable_lookup | Enable address autocomplete |
lookup_provider | Lookup service (here) |
Container Fields
Group
Container for organizing related fields.
| Config Option | Description |
|---|---|
layout | Field arrangement (row, column) |
fields | Nested field definitions |
repeatable | Allow multiple instances |
Content Fields
Display-only fields that don’t collect data.
Heading
Section heading text.
| Config Option | Description |
|---|---|
level | Heading level (h1-h6) |
Paragraph
Body text content.
Button
Clickable button.
| Config Option | Description |
|---|---|
type | Button type (button, link) |
url | Link URL (for link type) |
Buttons can trigger workflows when clicked.
HTML
Custom HTML content.
Image
Display image.
| Config Option | Description |
|---|---|
url | Image URL |
alt | Alt text |
align | Alignment (left, center, right) |
Video
Embedded video content.