---
id: properties
title: Properties
---
Using the **Form** component's property panel, you can control the form structure, generate the form, add fields, configure events, and more.
## Structure
|
Property
| Description | Expected Value |
|----------|-------------|:---------------|
| Header | Show or hide the form header. | You can set it with the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. |
| Footer | Show or hide the form footer. | You can set it with the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. |
| Submit button | Select a **Button** that will be used to submit the form. | Choose any **Button** that is a child component inside the **Form** component from the dropdown or dynamically configure the value by clicking on **fx** and entering a logical expression. |
## Data
Choose how the form should be generated and manage all input fields from a single place. The form can be generated in the following ways:
- Using JSON Schema
- Using Raw JSON
- Using Query Output
- Using the Form Property Panel
- By Dragging Components into the Form
Refer to the [Generate Form](/docs/widgets/form/form) guide for more details.
## Events
| Event
| Description
|
|:------------|:-----------------|
| On submit | Triggers when the submit button is clicked. |
| On invalid | Triggers when the there is invalid input in the form. |
## Additional Actions
| Action
| Description
| Configuration Options
|
|:------------------|:------------|:------------------------------|
| Validate all fields on submission | Validates all fields when the form is submitted. | Enable/disable the toggle, or use **fx** to enter a logical expression. |
| Reset form on submission | Resets all form fields after submission. | Enable/disable the toggle, or use **fx** to enter a logical expression. |
| Loading state | Enables a loading spinner during submission, often tied to `isLoading`. | Enable/disable the toggle, or use **fx** to enter a logical expression. |
| Visibility | Controls whether the component is visible. | Enable/disable the toggle, or use **fx** to enter a logical expression. |
| Dynamic height | Automatically adjusts height based on content. | Enable/disable the toggle, or use **fx** to enter a logical expression. |
| Disable | Enables or disables the entire component. | Enable/disable the toggle, or use **fx** to enter a logical expression. |
| Tooltip | Displays a tooltip on hover. | String value (e.g., `Enter your password here.`) |
## Devices
| Property
| Description
| Expected Value
|
|:---------- |:----------- |:----------|
| Show on desktop | Makes the component visible in desktop view. | You can set it with the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. |
| Show on mobile | Makes the component visible in mobile view. | You can set it with the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. |