Skip to content

Setting types reference

Every input setting shares these attributes: type, id (unique within the schema), label, plus optional default and info (help text shown under the input). Each type also has its own required and optional attributes — supplying the wrong ones, or a default the type can’t store, makes the theme fail validation on save or import.

label, info, content, and option labels can all use the t: convention to point at a key in your schema locale files (for example "label": "t:settings.heading"). The renderer resolves t: strings to the shopper’s locale before rendering — see Locales and translation.

Text

TypeEditor input
textSingle-line text
textareaMulti-line plain text
inline_richtextBold/italic/link, no block elements
richtextFull rich text — default may only use <p> or <ul> as top-level tags
htmlRaw HTML with a code editor
liquidLiquid code with a code editor — the only type whose value is evaluated as Liquid
{ "type": "text", "id": "heading", "label": "Heading", "default": "Hello" }

All of these accept a string default (a liquid default can’t be blank).

Numbers, toggles & choices

TypeEditor inputRequired attributes
numberNumber field
rangeSlidermin, max, default; step optional; unit optional
checkboxOn/off toggle
selectDropdownoptions: [{ "value", "label" }]
radioRadio buttonsoptions: [{ "value", "label" }]
text_alignmentLeft/center/right icon picker
{ "type": "range", "id": "speed", "label": "Speed", "min": 1, "max": 10, "step": 1, "unit": "s", "default": 5 }

Color & typography

TypeEditor inputNotes
colorColor picker (with alpha)default must be a hex string
color_backgroundCSS background valueSolid colors and gradients only — no url() / images
color_schemePick one of the theme’s color schemes
color_scheme_groupDefines the scheme palette itselfTheme settings only
font_pickerFont from the platform libraryRequires a default font handle; use with the font filters
TypeEditor inputNotes
image_pickerImage from the media libraryCan’t carry a default
videoVideo from the media libraryCan’t carry a default
video_urlA YouTube or Vimeo URLRequires accept
urlAny URL or internal resource link
link_listA navigation menudefault may be main-menu or footer
{ "type": "video_url", "id": "promo", "label": "Promo video", "accept": ["youtube", "vimeo"] }

Resources

TypeValue in Liquid
product / product_listA product / array of products
collection / collection_listA collection / array of collections
article / article_listAn article / array of articles
blogA blog
pageA page
metaobject / metaobject_listA metaobject entry / array of entries
{ "type": "collection", "id": "featured", "label": "Collection to feature" }

The single-resource pickers article, blog, collection, page, and product (along with image_picker and video) can’t define a default — they resolve to whatever the merchant selects in the editor, and to a blank value when nothing is selected. The _list types return an array; you set a limit (max 50) and an optional array default. Each metaobject / metaobject_list setting must declare its metaobject_type.

header and paragraph add a heading or a block of explanatory text between inputs in the editor. They take a content attribute (which may be a t: key) instead of id/label, hold no value, and can’t define an id:

{ "type": "header", "content": "t:settings.layout_heading" }

Next steps