Editing shells
Setbuilder in theme.json.
full
Section tree, click-to-select on the canvas, drag to reorder, SEO panel,
nested block editing. The default.
simple
One scrolling column of forms. No section tree, no click-to-select, no SEO
panel. Nested blocks are displayed but not editable.
simple suits a theme small enough that a section tree adds overhead, such as a
link-in-bio layout consisting of a profile and a list of links.
The value is presentation only. Both shells call the same endpoints with the
same scopes and the same concurrency control, and the server does not read it.
It grants and restricts nothing.
An unrecognised value resolves to full, including a typo, a wrong type or an
absent key. Resolving to full shows extra controls; resolving to simple
would hide them.
Inline editing
data-bs-edit makes an element editable in place on the canvas. Its value is
the settings key written back to.
richtext makes the element contenteditable and stores HTML. image is not
edited inline and opens the field in the panel instead.
data-bs-section, data-bs-section-type, data-bs-group and the wrapper
around each {blocks} child are injected by the platform. Do not write them
in a template.Live theme settings
The builder applies theme setting changes to the preview without a reload. For an accent colour it calls a function the theme defines:accent setting that does not define this has no live preview
for it. The merchant’s colour change is not visible until reload.
The preview
The preview renders the theme against the merchant’s own data, on the store’s origin, in an iframe.- Drafts render through an uncached path, so preview updates are immediate while the live store lags by up to a minute.
- The preview is cross-origin from the builder. Communication across that boundary goes through the platform’s bridge, not through theme code.