Form Widget
The Form widget is a powerful container component that allows you to create structured forms with multiple input fields, validation rules, and advanced layout options. It serves as a parent container for other form elements and provides comprehensive form management capabilities.
Overview
The Form widget creates a structured form layout using a grid system. It can contain various input components, handle validation, and manage form submission. The widget supports different screen configurations, conditional visibility, and advanced validation rules.

Configuration Options
Global Settings
Basic Configuration
- Name: Display name for the form widget
- Variable/Model: The data model that will store the form values (e.g.,
userForm
,contactData
) - Form: Create a separate form instance from the main page form
Form Columns Structure
The form uses a column-based layout system where you can:
Add Columns: Create new columns with specific span widths
Configure Responsive Breakpoints:
xs
: Extra small screenssm
: Small screensmd
: Medium screenslg
: Large screensxl
: Extra large screens
Drag and Drop: Reorder columns using the drag handles
Remove Columns: Delete unnecessary columns

Validation Configuration
The form widget supports comprehensive validation across different screens (views/pages).
Screen-Based Validation
For each screen in your application, you can configure:
- Available: Whether the form is available on this screen
- Visible: Control form visibility with boolean or conditional expressions
- Required: Make form fields required on specific screens
- Disable: Disable the entire form on certain screens

Advanced Validation
- Conditional Expressions: Use dynamic expressions for visibility and validation
- Reference other form fields:
{{fieldName}}
- Use comparison operators:
{{age}} > 18
- Complex conditions:
{{userType}} === 'admin' && {{status}} === 'active'
- Reference other form fields:

Style Configuration
layout Configuration
Label Position: Choose how labels are positioned relative to inputs
left
: Labels appear to the left of inputsright
: Labels appear to the right of inputstop
: Labels appear above inputs
Justify: Horizontal alignment of form elements
start
: Align to the startend
: Align to the endcenter
: Center alignmentspace-around
: Distribute with space aroundspace-between
: Distribute with space between
Align: Vertical alignment of form elements
top
: Align to topmiddle
: Center verticallybottom
: Align to bottom
Shadowed: Add shadow effect to the form
Fixed: Make the form position fixed
Collapse: Enable collapsible form sections
Basic Styling
- Width: Set form width (pixels, percentages, or CSS units)
- Height: Set form height
- Class Names: Add custom CSS classes for styling
- Dynamic Classes: Apply classes based on conditions
Layout Options
- Layout Mode:
Block
: Form takes full widthInline
: Form elements display inline
- Border: Enable/disable form border

Usage Examples
Basic Contact Form

Conditional Form

Best Practices
Form Design
- Logical Grouping: Group related fields in the same column
- Responsive Design: Configure appropriate breakpoints for different screen sizes
- Clear Labels: Use descriptive labels for form fields
- Validation Feedback: Provide clear error messages
Performance
- Efficient Models: Use specific model names to avoid data conflicts
- Conditional Loading: Use visibility conditions to load forms only when needed
- Minimal Nesting: Avoid excessive nesting of form components
User Experience
- Progressive Disclosure: Use collapse feature for complex forms
- Visual Hierarchy: Use spacing and alignment to guide user attention
- Feedback: Provide immediate validation feedback
- Accessibility: Ensure proper label associations and keyboard navigation
Data Management
- Consistent Naming: Use consistent naming conventions for models
- Validation Strategy: Implement both client-side and server-side validation
- Error Handling: Plan for graceful error handling and recovery
Technical Implementation
Component Structure
The form widget generates a Vue.js component that:
- Manages form state and validation
- Handles nested component communication
- Provides data binding capabilities
- Supports dynamic form generation
Integration Points
- Parent Components: Can be embedded in pages, popups, or other containers
- Child Components: Contains and manages various input widgets
- Data Layer: Integrates with the application's data management system
- Validation System: Connects to the platform's validation framework
This documentation provides a comprehensive guide to configuring and using the Form widget effectively in your application interface.