Field Types
Complete reference for all form field types available in ArcanFlows.
Overview
ArcanFlows provides a comprehensive set of field types for building any kind of form. Each field type has specific configuration options and validation rules.
Text Fields
Text Input
Single-line text entry for short responses.
Configuration:
| Option | Description |
|---|---|
| Label | Field label text |
| Placeholder | Hint text |
| Default Value | Pre-filled value |
| Min Length | Minimum characters |
| Max Length | Maximum characters |
| Pattern | Regex validation |
Use Cases: Names, titles, short answers
json{ "type": "text", "label": "Full Name", "placeholder": "Enter your full name", "required": true, "minLength": 2, "maxLength": 100 }
Text Area
Multi-line text for longer responses.
Configuration:
| Option | Description |
|---|---|
| Rows | Visible rows (height) |
| Min Length | Minimum characters |
| Max Length | Maximum characters |
| Resize | none, vertical, horizontal, both |
Use Cases: Messages, descriptions, comments
json{ "type": "textarea", "label": "Message", "placeholder": "Type your message here...", "rows": 4, "maxLength": 2000 }
Email address with built-in validation.
Configuration:
| Option | Description |
|---|---|
| Allow Multiple | Accept comma-separated emails |
| Domain Whitelist | Only allow specific domains |
| Domain Blacklist | Block specific domains |
Use Cases: Contact forms, registrations
json{ "type": "email", "label": "Email Address", "placeholder": "you@example.com", "required": true }
Phone
Phone number with formatting.
Configuration:
| Option | Description |
|---|---|
| Country | Default country code |
| Format | Display format |
| Validate | Check if valid number |
Use Cases: Contact info, verification
json{ "type": "phone", "label": "Phone Number", "defaultCountry": "US", "format": "national" }
URL
Website URL with validation.
Configuration:
| Option | Description |
|---|---|
| Require Protocol | Must include http(s):// |
| Allowed Protocols | http, https, ftp, etc. |
Use Cases: Website links, social profiles
json{ "type": "url", "label": "Website", "placeholder": "https://example.com", "requireProtocol": true }
Password
Secure password entry.
Configuration:
| Option | Description |
|---|---|
| Min Length | Minimum characters |
| Require Uppercase | Must include A-Z |
| Require Lowercase | Must include a-z |
| Require Number | Must include 0-9 |
| Require Symbol | Must include special char |
| Show Strength | Display strength meter |
Use Cases: Account creation, authentication
json{ "type": "password", "label": "Password", "minLength": 8, "requireUppercase": true, "requireNumber": true, "showStrength": true }
Number Fields
Number
Numeric input with optional constraints.
Configuration:
| Option | Description |
|---|---|
| Min | Minimum value |
| Max | Maximum value |
| Step | Increment amount |
| Decimals | Decimal places allowed |
| Format | Number format (thousand separators) |
Use Cases: Quantities, amounts, ages
json{ "type": "number", "label": "Quantity", "min": 1, "max": 100, "step": 1, "defaultValue": 1 }
Currency
Money input with currency formatting.
Configuration:
| Option | Description |
|---|---|
| Currency | USD, EUR, GBP, etc. |
| Min | Minimum amount |
| Max | Maximum amount |
| Decimals | Decimal places (usually 2) |
Use Cases: Prices, budgets, donations
json{ "type": "currency", "label": "Budget", "currency": "USD", "min": 0, "max": 1000000, "decimals": 2 }
Slider
Visual range selection.
Configuration:
| Option | Description |
|---|---|
| Min | Minimum value |
| Max | Maximum value |
| Step | Increment |
| Show Value | Display current value |
| Show Labels | Show min/max labels |
Use Cases: Ratings, ranges, preferences
json{ "type": "slider", "label": "Satisfaction", "min": 0, "max": 10, "step": 1, "showValue": true }
Rating
Star or numeric rating.
Configuration:
| Option | Description |
|---|---|
| Max | Maximum rating (e.g., 5 stars) |
| Icon | star, heart, thumb |
| Allow Half | Allow half values |
| Show Labels | Label for each value |
Use Cases: Reviews, feedback, surveys
json{ "type": "rating", "label": "Rate your experience", "max": 5, "icon": "star", "allowHalf": true }
Selection Fields
Dropdown
Single selection from a list.
Configuration:
| Option | Description |
|---|---|
| Options | List of choices |
| Searchable | Enable search/filter |
| Clearable | Allow clearing selection |
| Placeholder | Default text |
Use Cases: Countries, categories, single choice
json{ "type": "dropdown", "label": "Country", "placeholder": "Select a country", "searchable": true, "options": [ { "value": "us", "label": "United States" }, { "value": "uk", "label": "United Kingdom" }, { "value": "ca", "label": "Canada" } ] }
Multi-Select
Multiple selections from a list.
Configuration:
| Option | Description |
|---|---|
| Options | List of choices |
| Min Selections | Minimum required |
| Max Selections | Maximum allowed |
| Searchable | Enable search |
Use Cases: Skills, interests, multiple categories
json{ "type": "multiselect", "label": "Skills", "minSelections": 1, "maxSelections": 5, "options": [ { "value": "js", "label": "JavaScript" }, { "value": "py", "label": "Python" }, { "value": "go", "label": "Go" } ] }
Radio Buttons
Single selection with all options visible.
Configuration:
| Option | Description |
|---|---|
| Options | List of choices |
| Layout | vertical, horizontal |
| Other Option | Allow custom input |
Use Cases: Yes/No, small option sets
json{ "type": "radio", "label": "Contact Preference", "layout": "vertical", "options": [ { "value": "email", "label": "Email" }, { "value": "phone", "label": "Phone" }, { "value": "mail", "label": "Mail" } ] }
Checkboxes
Multiple selections with all options visible.
Configuration:
| Option | Description |
|---|---|
| Options | List of choices |
| Min Selected | Minimum required |
| Max Selected | Maximum allowed |
| Layout | vertical, horizontal, grid |
Use Cases: Multiple features, agreements
json{ "type": "checkbox", "label": "Features", "layout": "vertical", "options": [ { "value": "dark", "label": "Dark Mode" }, { "value": "notif", "label": "Notifications" }, { "value": "auto", "label": "Auto-save" } ] }
Single Checkbox
Boolean yes/no selection.
Configuration:
| Option | Description |
|---|---|
| Label | Checkbox label |
| Default | Checked by default |
Use Cases: Terms acceptance, opt-ins
json{ "type": "single-checkbox", "label": "I agree to the terms and conditions", "required": true }
Date & Time Fields
Date
Date selection with calendar picker.
Configuration:
| Option | Description |
|---|---|
| Min Date | Earliest allowed date |
| Max Date | Latest allowed date |
| Format | Display format |
| Disable Dates | Specific dates to disable |
| Disable Weekends | Block Sat/Sun |
Use Cases: Birthdays, appointments, deadlines
json{ "type": "date", "label": "Date of Birth", "maxDate": "today", "format": "MM/DD/YYYY" }
Time
Time selection.
Configuration:
| Option | Description |
|---|---|
| Format | 12h or 24h |
| Min Time | Earliest time |
| Max Time | Latest time |
| Interval | Minute intervals (15, 30, etc.) |
Use Cases: Appointment times, schedules
json{ "type": "time", "label": "Preferred Time", "format": "12h", "interval": 30, "minTime": "09:00", "maxTime": "17:00" }
Date-Time
Combined date and time picker.
Configuration: Same as Date + Time combined.
Use Cases: Event scheduling, timestamps
json{ "type": "datetime", "label": "Event Date & Time", "minDate": "today", "format": "MM/DD/YYYY hh:mm A" }
Date Range
Select start and end dates.
Configuration:
| Option | Description |
|---|---|
| Min Range | Minimum days between |
| Max Range | Maximum days between |
Use Cases: Booking periods, date ranges
json{ "type": "daterange", "label": "Travel Dates", "minDate": "today", "minRange": 1, "maxRange": 30 }
File Fields
File Upload
Single or multiple file uploads.
Configuration:
| Option | Description |
|---|---|
| Accept | Allowed file types |
| Max Size | Maximum file size |
| Multiple | Allow multiple files |
| Max Files | Maximum number of files |
Use Cases: Documents, images, attachments
json{ "type": "file", "label": "Attachments", "accept": ".pdf,.doc,.docx", "maxSize": "10MB", "multiple": true, "maxFiles": 5 }
Image Upload
Image-specific upload with preview.
Configuration:
| Option | Description |
|---|---|
| Accept | Image types (jpg, png, etc.) |
| Max Size | Maximum file size |
| Crop | Enable cropping |
| Aspect Ratio | Required ratio (1:1, 16:9) |
Use Cases: Profile photos, product images
json{ "type": "image", "label": "Profile Photo", "accept": ".jpg,.jpeg,.png", "maxSize": "5MB", "crop": true, "aspectRatio": "1:1" }
Signature
Digital signature capture.
Configuration:
| Option | Description |
|---|---|
| Width | Canvas width |
| Height | Canvas height |
| Pen Color | Signature color |
| Background | Canvas background |
Use Cases: Contracts, agreements, approvals
json{ "type": "signature", "label": "Signature", "width": 400, "height": 150, "penColor": "#000000", "required": true }
Special Fields
Hidden
Invisible field for passing data.
Configuration:
| Option | Description |
|---|---|
| Value | Static or dynamic value |
Use Cases: Tracking IDs, source, metadata
json{ "type": "hidden", "name": "source", "value": "{{url.utm_source}}" }
Rich Text Editor
Formatted text input.
Configuration:
| Option | Description |
|---|---|
| Toolbar | Available formatting options |
| Max Length | Character limit |
| Allow Images | Enable image insertion |
Use Cases: Long descriptions, formatted content
json{ "type": "richtext", "label": "Description", "toolbar": ["bold", "italic", "link", "list"], "maxLength": 5000 }
Address
Complete address input.
Configuration:
| Option | Description |
|---|---|
| Countries | Available countries |
| Autocomplete | Google Places integration |
| Fields | Which fields to show |
Use Cases: Shipping, billing, locations
json{ "type": "address", "label": "Shipping Address", "autocomplete": true, "fields": ["street", "city", "state", "zip", "country"] }
Layout Fields
Section
Group fields with a header.
json{ "type": "section", "title": "Contact Information", "description": "How can we reach you?", "collapsible": true }
Divider
Visual separator between fields.
json{ "type": "divider", "style": "solid" }
HTML Block
Custom HTML content.
json{ "type": "html", "content": "<p class='text-gray-500'>Additional information...</p>" }
Page Break
Multi-step form page separator.
json{ "type": "pagebreak", "title": "Step 2: Payment Details" }