Skip to content

Input Settings

Input settings define configurable fields that editors can modify. They’re used in both theme settings (settings_schema.json) and block schemas.

All input settings share these common attributes:

AttributeTypeRequiredDescription
typestringYesThe field type
namestringYesUnique identifier used to access the value
labelstringNoDisplay label shown in the admin UI
defaultanyNoDefault value when not set

Single-line text input for short strings like titles, URLs, or identifiers.

{
"type": "text",
"name": "headline",
"label": "Headline",
"default": "Welcome"
}

Multi-line text input for longer content that doesn’t require formatting.

{
"type": "textarea",
"name": "description",
"label": "Description"
}

Rich text editor with formatting options (bold, italic, links, lists, etc.). Returns JSON that can be rendered as HTML.

{
"type": "richtext",
"name": "content",
"label": "Content"
}

Numeric input that validates and stores numbers.

{
"type": "number",
"name": "columns",
"label": "Number of Columns",
"default": 3
}

Boolean toggle that stores true or false.

{
"type": "checkbox",
"name": "show_border",
"label": "Show Border",
"default": false
}

Radio button group for selecting one option from a predefined list.

{
"type": "radio",
"name": "alignment",
"label": "Alignment",
"options": [
{ "label": "Left", "value": "left" },
{ "label": "Center", "value": "center" },
{ "label": "Right", "value": "right" }
],
"default": "center"
}

Dropdown selection for choosing one option from a list.

{
"type": "select",
"name": "size",
"label": "Size",
"options": [
{ "label": "Small", "value": "sm" },
{ "label": "Medium", "value": "md" },
{ "label": "Large", "value": "lg" }
],
"default": "md"
}

Color picker that stores a hex color value.

{
"type": "color",
"name": "background",
"label": "Background Color",
"default": "#ffffff"
}

File upload field for selecting media from the media library.

AttributeTypeRequiredDescription
relationTostringYesCollection to upload to (media or files)
filterOptionsobjectNoFilter available files (e.g., by MIME type)
{
"type": "upload",
"name": "image",
"label": "Image",
"relationTo": "media"
}

Media object properties:

PropertyDescription
urlOriginal file URL
srcSource path for image_url filter
altAlt text
captionCaption text
creditCredit/attribution
widthImage width in pixels
heightImage height in pixels
focalXFocal point X (0-100)
focalYFocal point Y (0-100)
filenameOriginal filename
mimeTypeFile MIME type
filesizeFile size in bytes

Link to content from another collection.

AttributeTypeRequiredDescription
relationTostring or arrayYesCollection(s) to relate to
hasManybooleanNoAllow multiple selections
{
"type": "relationship",
"name": "featured_event",
"label": "Featured Event",
"relationTo": "events",
"hasMany": false
}

Multiple relationships (hasMany: true):

{
"type": "relationship",
"name": "related_posts",
"label": "Related Posts",
"relationTo": "posts",
"hasMany": true
}

Available collections:

pages, events, series, seasons, venues, people, organizations, works, posts, blogs, media, files


Groups related fields together visually and in the data structure.

{
"type": "group",
"name": "cta",
"label": "Call to Action",
"fields": [
{
"type": "text",
"name": "text",
"label": "Button Text"
},
{
"type": "text",
"name": "url",
"label": "Button URL"
},
{
"type": "checkbox",
"name": "new_tab",
"label": "Open in New Tab",
"default": false
}
]
}

Repeatable set of fields allowing editors to add multiple items.

AttributeTypeRequiredDescription
labelsobjectNoSingular and plural labels for the array items
fieldsarrayYesField definitions for each item
{
"type": "array",
"name": "features",
"labels": {
"singular": "Feature",
"plural": "Features"
},
"fields": [
{
"type": "text",
"name": "title",
"label": "Title"
},
{
"type": "textarea",
"name": "description",
"label": "Description"
},
{
"type": "upload",
"name": "icon",
"label": "Icon",
"relationTo": "media"
}
]
}

Date picker for selecting dates. Can optionally include time.

{
"type": "date",
"name": "publish_date",
"label": "Publish Date"
}

Code editor with syntax highlighting. Stores content as a string.

{
"type": "code",
"name": "custom_css",
"label": "Custom CSS"
}

JSON editor for storing structured data. Stores actual JSON (not a string).

{
"type": "json",
"name": "config",
"label": "Configuration"
}

Geographic point picker for storing latitude/longitude coordinates.

{
"type": "point",
"name": "location",
"label": "Location"
}
TypeUse CaseDefault Value
textShort strings, URLs""
textareaMulti-line plain text""
richtextFormatted contentnull
numberNumeric values0
checkboxBoolean togglesfalse
radioSingle selection (visible options)First option
selectSingle selection (dropdown)First option
colorColor values"#000000"
uploadMedia/file selectionnull
relationshipContent linksnull
groupOrganized field sets{}
arrayRepeatable items[]
dateDate/time valuesnull
codeCode snippets""
jsonStructured datanull
pointGeographic coordinatesnull