Options Reference
Every UI schema element accepts an options object.
The keys it recognizes depend on the element type and the selected renderer.
This page lists every option Prismatic's configuration wizard respects, alphabetized.
For how options fit into the rest of the UI schema, see the UI schema reference. For which options a specific renderer respects, see the renderers reference.
autocomplete
Applies to: Control whose schema property uses oneOf
Type: boolean
Default: false
Renders a oneOf dropdown as a type-ahead autocomplete field.
Typing in the input filters the list.
{
"type": "Control",
"scope": "#/properties/company",
"options": { "autocomplete": true }
}
detail
Applies to: Control scoped to an array, and ListWithDetail
Type: object (a UI schema element) or "DEFAULT" | "GENERATED" | "REGISTERED"
Overrides the default per-item detail form. Provide an inlined UI schema to control exactly how each array item is laid out.
{
"type": "Control",
"scope": "#",
"options": {
"layout": "Accordion",
"detail": {
"type": "HorizontalLayout",
"elements": [
{ "type": "Control", "scope": "#/properties/source" },
{ "type": "Control", "scope": "#/properties/destination" }
]
}
}
}
See Customizing field mapper layouts for a worked example.
elementLabelProp
Applies to: Control with options.layout: "Accordion", ListWithDetail
Type: string
Default: The first primitive property of the item schema
Which property to use as each accordion panel or list entry label.
{
"type": "Control",
"scope": "#/properties/mappings",
"options": {
"layout": "Accordion",
"elementLabelProp": "destination"
}
}
focus
Applies to: Any Control
Type: boolean
Default: false
Autofocuses the control when the form first mounts.
Only one control per form should set focus: true.
format
Applies to: Control on a string property
Type: string
Overrides the renderer choice for a string control.
In practice, use the schema's format keyword instead - it drives the same selection and validates input.
Set options.format: "password" in rare cases where you need a masked input without declaring "format": "password" in the schema (for example, when the schema comes from an external system you don't control).
hideRequiredAsterisk
Applies to: Any Control or layout
Type: boolean
Default: false
Hides the * marker next to required field labels within this element's subtree.
labelPlacement
Applies to: Control rendered as a toggle switch
Type: "top" | "left"
Default: "top"
Where the label sits relative to the toggle switch.
{
"type": "Control",
"scope": "#/properties/enabled",
"options": {
"toggle": true,
"labelPlacement": "left"
}
}
layout
Applies to: Control scoped to an array of objects
Type: "Accordion" | "Table"
Default: "Table"
Selects the array renderer.
"Accordion" renders each item as a collapsible panel; "Table" renders them as rows in a table.
{
"type": "Control",
"scope": "#/properties/mappings",
"options": { "layout": "Accordion" }
}
multi
Applies to: Control on a string property
Type: boolean
Default: false
Renders the string as a multi-line textarea instead of a single-line input. Useful for descriptions, notes, or any field where line breaks matter.
{
"type": "Control",
"scope": "#/properties/description",
"options": { "multi": true }
}
readonly
Applies to: Any Control or layout
Type: boolean
Default: false
Disables editing of the element and its subtree. Customers see the current value but can't change it.
restrict
Applies to: Control on a string property with maxLength
Type: boolean
Default: false
Enforces the schema's maxLength at the browser level by setting the input's HTML maxlength attribute.
Without restrict, customers can type past the limit and see a validation error instead.
showNavButtons
Applies to: Categorization with options.variant: "stepper"
Type: boolean
Default: false
Displays Next and Previous buttons for navigating between steps.
{
"type": "Categorization",
"elements": [
/* ... */
],
"options": {
"variant": "stepper",
"showNavButtons": true
}
}
showSortButtons
Applies to: Control scoped to an array
Type: boolean
Default: false
Adds up and down reorder buttons to each array item. Works with both the table and accordion renderers.
showUnfocusedDescription
Applies to: Any Control
Type: boolean
Default: true
Keeps the schema's description visible beneath the input at all times.
When false, descriptions only appear while the field is focused.
slider
Applies to: Control on a numeric property with minimum, maximum, and default
Type: boolean
Default: false
Renders the numeric input as a slider.
The schema must include minimum, maximum, and default values for the slider to render.
The schema's multipleOf sets the slider's step increment.
toggle
Applies to: Control on a boolean property
Type: boolean
Default: false
Renders the boolean as a switch instead of a checkbox.
{
"type": "Control",
"scope": "#/properties/enabled",
"options": { "toggle": true }
}
trim
Applies to: Control on a string property with maxLength
Type: boolean
Default: false
Sizes the input to fit the schema's maxLength, producing a narrower field.
Pair with restrict to enforce the limit as the customer types.
variant
Applies to: Categorization
Type: "stepper"
Default: Tabs
Switches a Categorization from its default tabbed layout to a stepper.
Combine with showNavButtons to add Next and Previous buttons.
{
"type": "Categorization",
"elements": [
/* ... */
],
"options": {
"variant": "stepper",
"showNavButtons": true
}
}
Inheriting options
Options set on a layout pass down to child elements through JSON Forms' shared config.
You can set cross-cutting options like showUnfocusedDescription: false once at the root rather than repeating them on every control.