Form Settings

Global form settings: display layout, appearance, after-save behavior, security, and multilingual support.

Where settings are configured

Form-wide settings (as opposed to individual field settings) are located on the right side of the designer top bar.

LocationWhat it contains
Style button (for example Dialog · 960 px) opens the Display style & form behavior windowDisplay layout type, width, label position, density, required indicator, Print, debug mode, and after-save behavior.
Security button (or Editor lock active when locked)Who can open settings, storage lock, script policy, and editor password.
Translations (i18n) tabLanguages and text translations.
Layout tab, New, Edit, Display buttonsPer-mode custom layouts.
JSON tabAll settings as raw JSON text.
Display style & form behavior dialog showing all sections: Layout type, Typography & field appearance, Print and Debug mode toggles, and After form save

Form colors and fonts follow the SharePoint site theme, including dark mode. They cannot be overridden in form settings. Tab and section colors are configured in the layout.

All settings are optional. Any omitted setting uses the default value listed below. Settings are saved together with the entire configuration via Save form.

Form settings

Display layout (dialog, panel, full page) displayLayout

Controls how the form is rendered when opened as a standalone form page. In the designer, select it under SharePoint layout type.

ValueDesigner optionBehavior
dialog (default)Centered dialog (Card)A card centered on the page with a maximum width of dialogMaxWidth.
panelSide panel (Right)A panel sliding in from the right with a fixed width of 640 px. Clicking the backdrop closes the form (prompting if there are unsaved changes).
fullFull widthThe form fills the page. Side margins are controlled by fullWidthMarginHorizontal.

When SharePoint opens a form in its own list panel or dialog (for example, New from a list view), the form fills that panel and displayLayout does not apply. This setting applies to standalone pages (NewForm.aspx, EditForm.aspx, DispForm.aspx, SPListForm.aspx).

The style button displays the current selection (Dialog · 960 px, Panel · 640 px, Full width). In a mode with a custom layout, only that mode's setting is changed; see modeLayouts.

{ "displayLayout": "panel" }

Maximum dialog width dialogMaxWidth

Maximum card width in pixels when displayLayout: "dialog". The Maximum dialog width (px) field is shown only for the Dialog type.

{ "displayLayout": "dialog", "dialogMaxWidth": 1200 }

Horizontal margins in full width fullWidthMarginHorizontal

Left and right margin in pixels when displayLayout: "full". The Left & right margin (px) field is shown only for Full width.

{ "displayLayout": "full", "fullWidthMarginHorizontal": 48 }

Label position labelPosition

Where the field label appears relative to the input.

ValueDesigner optionBehavior
top (default)Above field (default)The label is placed above the input.
leftLeft of fieldThe label is placed to the left of the input. Suitable for wide forms.
{ "labelPosition": "left" }

Form density formDensity

Size of controls and spacing between fields.

ValueDesigner optionBehavior
normal (default)Standard (default)Regular control sizes and spacing.
compactCompact (tighter spacing)Smaller controls, tighter spacing, and shorter multi-line fields. Suitable for forms with many fields.
{ "formDensity": "compact" }

Required indicator requiredIndicator

How required fields are marked. The indicator is displayed only for fields that are currently visible, required, and not read-only, so it responds dynamically to rules.

ValueDesigner optionBehavior
asterisk (default)Asterisk (*) – defaultRed asterisk next to the label.
badgeBadge (Required)A Required badge is shown after the label.
noneHidden (no indicator)No indicator. Requiredness is only enforced by an error on save.
{ "requiredIndicator": "badge" }

Print button showPrintButton

Shows a Print button on the form toolbar that opens the browser's print dialog.

{ "showPrintButton": false }

Command bar commandBarConfig

The top form toolbar (Fluent v9 Toolbar) groups the Back, Edit, Save, Cancel, Print, custom buttons placed on the Form toolbar, and (for list administrators) Form settings buttons. Since 1.18.0, you configure it in the Toolbar & buttons tab (with live preview); the Display style & form behavior window keeps only a link to that tab.

Appearance (since 1.17.1, SharePoint style): Back is not a toolbar button, but a breadcrumb above it in the form List name › Item title. The list name is a link that triggers the Back action; the item title comes from the Title field (new items show "New item", long titles are truncated with an ellipsis). The toolbar below is a single row of equal-height (32 px) buttons with icon and text: the only filled button is the primary action (Edit in display mode, Save in edit and new modes), while Cancel is subtle. A vertical divider separates system actions from custom buttons, which share the same size and a lightning icon; primary stays filled, subtle stays subtle, and secondary/outline have a border. Print and Form settings are aligned to the right. On narrow screens, buttons wrap to the next line.

KeyDescription
enabledEnables the toolbar (default on). When disabled, form actions disappear, but Form settings and Back remain accessible so the configuration can always be fixed. The same applies if the form fails to render due to an error: an admin sees Form settings and Back above the error message.
showBack, showEdit, showSave, showCancel, showPrintVisibility of individual buttons (default on). Buttons appear only in modes where they make sense (Edit in display mode; Save and Cancel in edit and new modes).
backLabel, editLabel, saveLabel, cancelLabel, printLabel, settingsLabelCustom button labels. Blank = default localized text. While saving, "Saving…" is always shown even with a custom saveLabel. Translations for other languages are entered on the Translations tab (rows commandBarConfig.*Label, stored under i18nConfig.translations[locale].commandBar).
{ "commandBarConfig": { "enabled": true, "showPrint": false, "saveLabel": "Submit" } }

List buttons and actions listActions

Lets you add custom buttons directly to the list Command Bar ("List toolbar") and item context menu (up to 10 slots in Pro; 1 button in the top bar in Community). Each action defines its placement (commandBar, contextMenu, both), selection condition (none, single, multiple), optional Pro data visibility condition (e.g. item.Status === 'New'), optional confirmation, and action type (updateItem, openForm, print, openUrl, triggerFlow, runScript).

Actions are edited in the dedicated List actions designer tab (prior to 1.26 they were at the bottom of Toolbar & buttons). When confirmation is enabled, in addition to the dialog title and message, you can set the confirm button label (confirmation.confirmLabel) and Cancel button label (confirmation.cancelLabel); blank fields use the default texts "Run" and "Cancel" in the form's language. All confirmation texts can be translated on the Translations tab.

After saving the configuration in a designer opened from the list toolbar, the page automatically reloads upon closing so the updated actions appear in both the command bar and context menu.

The openForm and print actions open the form in our own dialog. Its title shows the selected item title (the Title column, otherwise the action title); the dialog closes with the X in the title bar or with the form's own Close/Save buttons (since 1.32.0).

In pure client-side SPFx, the form configuration (including the webhook URL with its sig= parameter) is stored in a file readable by list readers. Therefore, the Flow must not trust data sent from the browser and must always re-fetch the item from SharePoint by ID and verify its state and permissions.

Opening the form in a dialog listViewDialog

SharePoint ignores the panel setting of custom forms (Form Customizer) (Microsoft bug sp-dev-docs#10996), so New and Edit from the list open a full form page. Since 1.32.0 you can turn on our own commands in the designer's List actions tab (section Opening the form in a dialog) that open the form in a dialog over the list. Once Microsoft fixes the bug, we will switch to the native panel.

OptionWhat it does
newInDialogAdds a New button to the list command bar (only for users who can add items). It opens the New form (default content type, current folder) in a dialog titled "New item".
editInDialogFor exactly one selected item, adds Open in dialog and Edit in dialog to the command bar and the context menu (edit only with edit permission). The dialog title is the item title.
hideDefaultNewHides the built-in New button via view formatting (commandBarProps, command new) in all public views. Existing view formatting is kept; the views where we added the entry are stored in hiddenNewViewIds and only those are reverted when you turn it off. The view change is written immediately when you toggle the switch.
hideDefaultEditHides the built-in Edit command (opens the edit form of the selected item; key edit, Quick edit in the grid stays) the same way as New; the views we changed are stored in hiddenEditViewIds. Turn it on together with editInDialog, otherwise users cannot edit an item from the list.

After the form in the dialog is saved, the dialog closes and the list view refreshes (if refresh is not available, the page reloads).

Limitations: the dialog loads the whole form page in an iframe, so it is slower than a native panel. Clicking the item title in the list still opens the page (click interception is not part of this version). The built-in New can only be hidden when the list is excluded from offline sync (Microsoft Lists sync): for a list available offline the form commands may not load and New would disappear completely. In that case the designer disables the switch and shows the reason; the warning on the same tab offers to exclude the list from offline sync.

Column formatting in list views listColumnFormatting

Since version 1.37.0 the List actions tab of the builder (section Column formatting in list views) can set a visual format for columns in the standard SharePoint list views. The editor is the same as for Related items (badges, progress bar, date alert, person). FormCraft compiles the format into native SharePoint column formatting (JSON in the column property CustomFormatter), so it works in every view, in the mobile app and with Microsoft Lists sync, even without FormCraft loaded.

Column typeFormatResult in SharePoint
Choice, multiple choice, textBadgeColoured badge per value (classes sp-field-severity--*), optional icon.
Number, currencyProgress barBar filled against a maximum (fixed number or another column of the row), optionally the value with a unit.
DateDate alertHighlights past-due dates and warns X days ahead (based on @now); a status column can suppress the warning.
Person (single)PersonPhoto and name, optionally an e-mail link.

For each formatted column the builder shows the formatting state in SharePoint (No formatting, FormCraft format, Changed outside FormCraft, Custom formatting), a preview, the generated and the current JSON, and these actions:

The rule, the hash of the written JSON (used to detect changes outside FormCraft) and the backup are stored in listColumnFormatting in the form configuration – save the form after writing. The feature requires a Pro license; without it the section is informational only.

Limitations: texts in the JSON (for example "Past due") are static, in the default form language. The format is written to the column of this list, not to the site column or content type. The builder preview differs slightly from SharePoint rendering; check the result in the list. Importing the configuration into another environment does not apply the format by itself – open the section and write it again.

Debug mode debugMode

Logs rule evaluations, script execution, forced values, and when each field becomes dirty to the browser console (F12). Useful for troubleshooting why a rule is not firing.

Debug mode logs field values to the console and slightly slows down the form. Turn it off once troubleshooting is complete.

{ "debugMode": true }

After-save behavior afterSaveConfig

What happens after an item is saved successfully.

KeyDesigner optionDescription
actionAction after successful saveclose (default): closes the form and returns to the list. stay: keeps the form open. redirect: redirects to redirectUrl.
messageConfirmation message after saveText shown to the user after saving. Supports [Field] placeholders.
redirectUrlTarget URL for redirectUsed only for redirect. Supports [ID] (ID of the saved item) and [Field] placeholders. Field values after ? or # are URL-encoded so &, #, and spaces do not break the URL. The result must be http, https, or a relative path; otherwise the redirect is blocked (with a console warning) and the form closes as in close.
{
  "afterSaveConfig": {
    "action": "redirect",
    "message": "Request [Title] has been saved.",
    "redirectUrl": "/sites/portal/SitePages/ThankYou.aspx?id=[ID]"
  }
}

Configuration security securityConfig

Who may open the designer and whether the editor is password-protected. Full details and procedures are on the Configuration Security page; SharePoint permissions are covered in Administration: Permissions.

KeyDescription
allowedEditorRolemanageWeb (default for new forms): only site owners see the Form settings button. group: site owners and members of allowedEditorGroup. Legacy value manageLists behaves like manageWeb.
allowedEditorGroupExact SharePoint group name for the group role. Must not be Members, Visitors, or a group containing all users.
configReadAllUsers, configReadGuestsWho may read the locked configuration storage: the whole organization and external users (guests). Both are enabled by default. Otherwise, restricted users see the form without custom configuration.
passwordHash, passwordSalt, passwordHintEditor lock: the password is stored only as a hash (PBKDF2). The password must be at least 3 characters long and can include an optional hint.

The editor lock is not a security boundary. It only prevents accidental edits to the form and does not restrict access to data or the configuration file.

Changes to the editor lock or allowed editor role cannot be saved while the editor is locked and has not been unlocked with the password.

{
  "securityConfig": {
    "allowedEditorRole": "group",
    "allowedEditorGroup": "Form Admins",
    "configReadAllUsers": true,
    "configReadGuests": false
  }
}
Security & configuration access dialog: role selector, group name, storage lock status with read toggles, and password section

Multilingual & translations i18nConfig

Default and enabled languages, language switcher, and configuration text translations. Managed on the Translations (i18n) tab; see Translations & Multilingual.

KeyDescription
defaultLocaleDefault form language (defaults to cs). Texts entered directly in the configuration use this language.
enabledLocalesLanguages offered to users (cs, en, de, sk).
showLanguageSwitcherShow the language switcher. It is also shown automatically if the form has more than one enabled language.
translationsTranslations keyed by language: tab and section titles, labels, help texts, messages, widget texts, and button labels.
{
  "i18nConfig": {
    "defaultLocale": "cs",
    "enabledLocales": ["cs", "en"],
    "showLanguageSwitcher": true,
    "translations": {
      "en": {
        "formTitle": "Order",
        "fields": { "Status": { "customLabel": "Status" } }
      }
    }
  }
}

Per-mode layouts modeLayouts

Custom layout for new, edit, or display mode. For each mode, you can configure:

KeyDescription
enabledEnabled (default true). Disabled or missing means the mode uses the shared layout.
tabsTabs for this mode (at least one). Replaces the shared tabs.
displayLayout, dialogMaxWidth, fullWidthMarginHorizontalOverrides display type and dimensions for this mode only. Omitted properties fall back to the shared settings.

See Form Layout for how to create and remove per-mode layouts. Rules, scripts, buttons, translations, and security are shared across all modes.

{
  "modeLayouts": {
    "display": {
      "enabled": true,
      "displayLayout": "full",
      "tabs": [
        {
          "id": "tab-prehled",
          "title": "Overview",
          "sections": [
            { "id": "sec-prehled", "title": "Summary", "columns": 2, "fields": [
              { "internalName": "Title", "fieldType": "text", "defaultReadOnly": true }
            ] }
          ]
        }
      ]
    }
  }
}

AI Assistant aiAssistant

Optional AI Assistant configuration in the builder. The relatedSources property is a list of lists and libraries in which the assistant looks up related items. Each source has listId and kind (list or documentLibrary). The mode property (modify or new) is the default mode of the tab. Both properties are set by the Save as default button on the AI Assistant tab. Older configurations omit these properties and continue to work unchanged. Using the assistant requires a Pro license (Licensing).