LogoLogo
Getting StartedDevelopersDeployment GuideGet Help
  • Quick Links
  • Welcome to Form.io
    • Getting Started With Form.io
    • Launch a Form
    • Overview of Form.io
  • Developer Tool Ecosystem
    • PDF Solution
    • Enterprise Form Builder
    • Form View Pro
    • The Security Module
    • Accessibility Compliance Module
    • Developer License
    • SQL Connector - Deprecated
    • Integration Libraries
    • Form.io CLI Tool
  • User Guide
    • Introduction
    • Form.io Developer Portal
    • Teams
    • Projects
      • Project UI
      • Project Settings
      • Stages
      • Multi-Tenancy
    • Resources
      • ResourceJS
    • Forms
      • Form Creation
      • Form Types
      • PDF Forms
      • Embedding a Form
      • Form Revisions
      • Form Settings
    • Form Building
      • Form Builder UI
      • Form Components
        • Component Settings
        • Basic Components
          • Resource as Select Component Data Source
        • Advanced Components
        • Layout Components
        • Data Components
        • Premium Components
          • Nested Forms
        • Custom Components
      • Logic & Conditions
      • Existing Resource Fields
      • Actions
    • Submissions
      • Accessing Submissions
      • Importing Submissions
    • Form.io eSignature - Coming Soon
    • Form.io Reporting Module
    • PDF Template Designer
    • Form View Pro
    • Form Manager
    • Enterprise Form Builder Module
      • Installation
      • User Guide
  • Developer Guide
    • Introduction
      • Application Development
      • API Documentation
    • Form Development
      • Form Renderer
      • Form Builder
      • Form Embedding
      • Form Evaluations
      • Form Templates
      • Custom Components
      • Translations
    • JavaScript Development
      • JavaScript SDK
      • JavaScript Frameworks
      • JavaScript Utilities
    • Authentication and Authorization
      • SAML
      • OAuth
      • LDAP
      • Resource Based Authentication
      • Email Authentication
      • Two-Factor Authentication
    • Roles and Permissions
      • Field Match-Based Access
      • Field-Based Resource Access
      • Group Permissions
    • Integrations
      • Email Integrations
      • File Storage
      • Google Developer Console
      • eSign Integrations
      • Relational Databases
    • Modules
    • Fetch Plugin API
    • CSS Frameworks
    • Offline Mode
    • Audit Logging
  • Deployments
    • Self-Hosted Deployment
      • Local Deployment
        • Local File Storage
      • Kubernetes
      • Cloud Deployment
        • AWS Deployment
          • AWS Lambda
          • Form.io/AWS Elastic Beanstalk End-To-End Encrypted Deployment
        • Azure Deployment
          • Azure App Service
            • Azure MSSQL Connector - Deprecated
          • Azure Virtual Machine
          • Azure Kubernetes Service
          • Set up the DB
        • GCP Deployment
          • GCP Cloud Run
      • On-Premise Deployment
      • Enterprise Server
      • PDF Server
    • Deployment Configurations
      • DNS Configuration
      • Load Balancer Configuration
    • Licenses
      • License Management
      • Library Licenses
    • Portal Base Project
      • Portal SSO
      • Portal Translations
    • Maintenance and Migration
      • Changes to Premium Libraries
  • FAQ
    • FAQ
    • Tutorials & Workflows
      • Password Reset
      • Dynamic Select Filtering
      • Approval Workflow
      • SSO Email Token
      • Embedding A Video
      • Data Source Validation
      • Select Data Source Options
      • Nested Form Workflows
        • Nested Wizard Forms
      • Save as Draft
      • Role-Based Conditions
      • Custom Component
      • Dynamic Radio and Select Box Values
      • Override CKEDITOR
    • Errors
    • Examples
    • License Utilization Checks
  • Contact Us
Powered by GitBook
On this page
  • HTML Element
  • Content
  • Columns
  • Field Set
  • Panel
  • Table
  • Tabs
  • Well

Was this helpful?

  1. User Guide
  2. Form Building
  3. Form Components

Layout Components

Learn more about Layout components

PreviousAdvanced ComponentsNextData Components

Last updated 9 months ago

Was this helpful?

Layout components are used to change the general layout and position of fields on a form. Utilize HTML or a WYSIWYG editor to add logos, headers, or static contextual language to the form. You can find information for each of the Layout Components like unique settings, JSON code, and field examples below:

HTML Element

Add an HTML Element to a form to display a single HTML Element. This is useful if you wish to quickly insert and configure some HTML in your form. All unsafe HTML is stripped before rendering to prevent cross-site scripting exploits. This includes tags like <script>, <embed>, and <style>, and attributes like onmouseover or onload.

Ensure all HTML elements are properly closed as misconfigured HTML can cause issues with moving or editing other components on the form.

HTML Tag: The name of the HTML tag to display.

CSS Class: The CSS class to add to the HTML Element. You may specify multiple classes by separating them with single spaces.

Attributes: Attributes and their values to add to the HTML Element. This is commonly used to add href attributes to <a> tags, or src attributes to <img> tags.

Refresh on Change: Makes the HTML Element re-renders whenever any value in the form changes. It might be useful when you want the HTML Element to display dynamic data of the other components after they are filled in with values during the form filling. Simply enter{{ data.{componentApiKey} }} into the HTML Element and enable this setting.

  • Coming Soon...

{
  "label": "HTML",
  "attrs": [
    {
      "attr": "",
      "value": ""
    }
  ],
  "refreshOnChange": false,
  "key": "html6",
  "type": "htmlelement",
  "input": false,
  "tableView": false
}

Specific Properties

Property
Description
Value
Required

tag

The HTML Tag to use for this element

Any HTML tag

true

attrs

An array of key-value pairs of attributes and their values to assign to this html element

Any HTML attribute

false

className

The class name to provide to the HTML Element

Any HTML class name

false

content

The HTML content to place within this element.

Any valid HTML

false

Content

A Content component may be added to a form to provide static content to the form, such as contextual language, headers, or media. For instance, if you need to provide instructions at the top of a form for display purposes only, use the Content componentThe Content component value is not submitted back to the server. A WYSIWYG editor is provided within the component to format the content.

Heading: Choose a Heading 1-3 or Paragraph

Font Family: Select your font style preference

Font Size: Change the font size from large to small

Font Emphasis: Add bold or italic emphasis to the content

Link: Add a hyperlink to the form

Indent: Increase or decrease the indent of the text

Insert Media: Add an image from your local machine and or add an online video via URL

Align: Align the text Left, Center, or Right

Embed Video

Data Summary

  • Use the Content component as a 'Summary Section' by interpolating data from other fields on the form.

  • Check the Refresh On Change setting to refresh the content anytime field data is changed on the form. This will ensure your summary section is constanstly updated with the latest date EG

{{ data.firstName }} 
{
  "label": "Content",
  "refreshOnChange": false,
  "key": "content1",
  "type": "content",
  "input": false,
  "tableView": false
}

Specific Properties

Property
Description
Value
Required
Default

html

The HTML contents of this component

Any HTML string

true

Sanitize Configuration

Columns

This component can be used for grouping other components into configurable columns. Use Columns if you want to display multiple components inline. Columns can be utilized to save vertical space on a form and will collapse when the form is rendered on a mobile device.

Column Properties: Configured the number of available columns. Once set, components can be added to the columns by dragging and dropping a component into the column drop zone.

Auto Adjust Columns: If all the nested components inside one of the columns are hidden, all the other columns' positions will be adjusted.

To evenly span your columns across the width of the form, the Column Property Width needs to equal 12 between all columns.

  • Adding components into columns will ensure they respond in the correct order when viewing the form from a mobile device or screens with smaller widths.

  • Ensure the Width total of your columns equal 12 in order to span the columns across the full width of the form without spilling the fields under to the next line.

{
  "label": "Columns",
  "columns": [
    {
      "components": [],
      "width": 6,
      "offset": 0,
      "push": 0,
      "pull": 0,
      "size": "md",
      "currentWidth": 6
    },
    {
      "components": [],
      "width": 6,
      "offset": 0,
      "push": 0,
      "pull": 0,
      "size": "md",
      "currentWidth": 6
    }
  ],
  "key": "columns1",
  "type": "columns",
  "input": false,
  "tableView": false
}

Specific Properties

Property
Description
Value
Required

columns

The columns configuration and components.

This is an array of Column Configurations defined below.

true

Column Configuration

The columns definition is defined as an array of column configurations. Let's say you have 3 different columns, and your schema may look like the following.

{
  "type": "columns",
  "columns": [
    {
      ... COLUMN CONFIGURATION ...
    },
    {
      ... COLUMN CONFIGURATION ...
    },
    {
      ... COLUMN CONFIGURATION ...
    }
  ]
}

where each column configuration has the following schema.

Property
Description
Value
Required
Default

components

An array of other components within this column.

Array of Components

true

[]

width

How many Bootstrap grid units wide is this column

6

true

6

offset

The bootstrap column offset.

0

false

0

push

How many bootstrap grid units to push the column. (Bootstrap 3 only)

0

false

0

pull

How many bootstrap grid units to pull the column. (Bootstrap 3 only)

0

false

0

Field Set

Field Sets allows you to group multiple fields together in a form. It helps organize related fields visually and logically, making it easier to manage and present complex forms. Field Sets can be used to group fields under a common heading or section. The Field Set is for display only and will not be saved to the API.

Legend: The Legend is the title that is displayed for the Field Set

  • The Field Set can act as the title of a section or area of your form. This can help with organizing groupings of components or sections of your form.

{
  "key": "fieldSet1",
  "type": "fieldset",
  "label": "Field Set",
  "input": false,
  "tableView": false,
  "components": []
}

Specific Properties

Property
Description
Value
Required
Default

legend

The text to place within the legend of this fieldset.

Any string

false

components

An array of components that are added within this fieldset.

Array of Components

true

[]

Panel

Theme: The theming of the Panel. Select one of the options to have the class added to the wrapper div, changing the color of the panel header.

Collapsible: Turn the Panel into a collapsible Panel, allowing users to open and close the panel section.

Initially Collapsed: The Panel will be collapsed on form load. Applied only when the Collapsible setting is enabled.

  • Hide the label of the Panel to create an organized outline section for your component

  • Use the collapsible setting with a large number of components, allowing users to hide the fields they don't want to see while they are filling one or another section of the form.

  • Copy/Paste the Panel to recreate the panel along with all the components inside of it

{
  "collapsible": false,
  "key": "panel",
  "type": "panel",
  "label": "Panel",
  "input": false,
  "tableView": false,
  "components": []
}

Specific Properties

Property
Description
Value
Required
Default

title

The title of the panel

Any string

false

theme

One of default, primary, success, info, warning, danger

false

default

components

An array of components that are within this panel.

Array of Components

true

[]

Table

The Table component allows you to arrange and present form fields in a table-like layout. This component is particularly useful for creating forms that require a clear and organized presentation of fields with sections that benefit from a tabular structure

Number of Rows: Number of rows that will display in the Table.

Number of Columns: Number of columns that will display in the Table.

Clone Row Components: Clones the components that are in a cell of one of the columns to all the other cells of that column. Use this if you want to add a lot of Table rows that will have the same content.

Cell Alignment: Horizontal alignment for cells of the Table. Can be Left, Center and Right.

Striped: Adds striped shading to the Table rows.

Bordered: Adds visible borders for the Table.

Hover: Highlights a row on a mouse hover.

Condensed: Condenses the size of the Table, making it takes less space.

  • Add HTML to the first row and column to create labels for your table. Add components and check the 'Hide Label' setting to create a clean-looking table.

  • The Table component is not dynamically responsive and will not collapse when viewing the form on mobile devices or small screens.

{
  "label": "Table",
  "cellAlignment": "left",
  "key": "table1",
  "type": "table",
  "numRows": 1,
  "numCols": 1,
  "input": false,
  "tableView": false,
  "rows": [
    [
      {
        "components": []
      }
    ]
  ]
}

Specific Properties

Property
Description
Value
Required

numRows

The number of rows for this table

integer

true

numCols

The number of columns for this table

integer

true

rows

A multi-dimensional array that provides the rows of the table. Within each row is another array that contains the columns of that row, and within that is the components that are contained within that cell of the table.

Multi-dimensional array

true

header

An array of strings that serve as the header for the columns of the table.

Array of strings for the table header.

false

striped

If the table should be striped

boolean

false

bordered

If the table should contain borders

boolean

false

hover

If the table should have a hover highlight over the rows.

boolean

false

condensed

If the table should be condensed

boolean

false

Tabs

Tabs: A data grid that allows adding, configuring, reordering, and removing tabs.

Vertical Layout: Makes the navigation bar display in a vertical orientation instead of the default horizontal layout.

{
  "label": "Tabs",
  "components": [
    {
      "label": "Tab 1",
      "key": "tab1",
      "components": []
    }
  ],
  "key": "tabs",
  "type": "tabs",
  "input": false,
  "tableView": false
}

Well

There are no Unique settings for the Well

  • Use different classes to change the appearance of the Well.

{
  "label": "Well",
  "key": "well1",
  "type": "well",
  "input": false,
  "tableView": false,
  "components": []
}

If writing HTML is not your preference, use the WYSIWYG editor with the as an alternative to writing HTML.

Content: The text content of the HTML Element. While adding more child HTML tags here will properly display them, it is recommended you use the to easily write and preview more complex HTML.

Use the Content component to embed a video within your form. for more information

In order to allow specific tags and attr in the content component, please see

Panels are used to organize and group other form components into a collapsible or expandable section. Panels help structure forms by visually separating different sections or categories of information. They can include a title and be configured to open or close, which helps in managing and navigating complex forms by reducing clutter and improving the user experience. Custom CSS Styling currently defaults to .

Any valid

This component groups different sets of fields together into separate tabs. Similar to a Wizard flow, users can switch between tabs using a navigation bar with tab buttons, each of which opens a group of components. Only one tab at a time displays in a rendered form. The Tab CSS currently maps to .

The Well component is a special type of form component designed to help with layout and visual separation within a form, making components inside the Well more user-friendly and visually appealing. Wells are wrapped in a div with a class mapped to .

Content component
Content component
Click here for a full list of JSON Schema definitions
Click Here
Sanitize Configuration
Click here for a full list of JSON Schema definitions
Click here for a full list of JSON Schema definitions
Click here for a full list of JSON Schema definitions
Bootstrap Card - Header and Footer
Click here for a full list of JSON Schema definitions
Click here for a full list of JSON Schema definitions
Bootstrap Navs
Click here for a full list of JSON Schema definitions
Bootstrap Cards
Bootstrap Panel Theme

HTML Element

Write your own HTML to add headers, images, etc

Content

Use a WYSIWYG editor to add and format text.

Columns

Add columns to display fields side by side.

Field Set

Create a Legend or Header for section in your form.

Panel

Use a Panel to encapsulate groups of fields

Table

Static table with rows and columns

Tabs

Group fields inside vertical or horizontal Tabs.

Well

Div class CSS wrapper

Interpolate data using the Content Component
Columns component settings