Skip to main content
An Easy theme is a set of pages built from ordered blocks. This page lists every block type the renderer accepts, and the settings each one reads.
This page is generated from the renderer’s own settings catalog, so it always matches what the renderer accepts. Regenerate it with bun apps/docs/scripts/generate-block-reference.ts.
Shoppex validates block settings before it renders a page. An unknown setting key fails the save with the block ID and the offending key. It is never dropped silently, so a typo in an automated edit shows up straight away instead of quietly doing nothing.

Shared surface settings

Most content blocks accept these three settings on top of their own:

How to read a block table

Required means the renderer needs the value to draw the block. Everything else falls back to the theme default. A type of “text, localizable” accepts either a plain string or a map of locale codes to strings, for example { "en": "Buy now", "de": "Jetzt kaufen" }. Some blocks list the same setting twice, once short and once with a prefix, for example ctaLabel and hero.ctaLabel. Both write the same value. The prefixed form is the canonical one, and it is the form the Builder and the AI tools produce. Prefer it in anything you automate. The short form stays accepted so older documents keep working.

Layout

Every page carries these. They frame the content blocks between them. Variants: classic, classic-centered, classic-deck, classic-minimal, clean-minimal, clean-minimal-centered, clean-minimal-compact, clean-minimal-underline, default-centered, default-minimal, default-pill, pulse, pulse-deck, pulse-minimal, pulse-pill, starlight, starlight-centered, starlight-minimal, starlight-pill Variants: classic, clean-minimal, pulse, starlight

cart-modal

Variants: starlight

Content

Marketing and information sections. Order them freely on any page.

hero

Also accepts the shared surface settings. Variants: classic, classic-banner, classic-minimal, clean-minimal, clean-minimal-editorial, clean-minimal-framed, default-minimal, default-spotlight, pulse, pulse-minimal, pulse-split, starlight, starlight-minimal, starlight-split

about

Also accepts the shared surface settings. Variants: pulse

faq

Also accepts the shared surface settings. Variants: classic, pulse, starlight

text-block

Also accepts the shared surface settings. Variants: pulse, starlight

why-choose-us

Also accepts the shared surface settings. Variants: classic, classic-list, classic-split, clean-minimal, clean-minimal-columns, clean-minimal-rows, default-grid, default-list, pulse, pulse-band, pulse-rows, starlight, starlight-compact, starlight-rows

trust-strip

Variants: clean-minimal

store-stats

Variants: clean-minimal

vouches

image

Variants: classic, clean-minimal, pulse, starlight Also accepts the shared surface settings. Variants: pulse, starlight Variants: classic, clean-minimal, pulse, starlight

media-embed

Also accepts the shared surface settings. Variants: classic, clean-minimal, pulse, starlight

blog-posts

Also accepts the shared surface settings. Variants: pulse, starlight

content-media

Also accepts the shared surface settings.

content-features

Also accepts the shared surface settings.

content-socials

Also accepts the shared surface settings.

contact-form

Also accepts the shared surface settings. Variants: classic, pulse, starlight

Commerce

Blocks that read the catalog or move the buyer towards checkout.

products

Also accepts the shared surface settings. Variants: classic, classic-list, classic-overlay, classic-shine, clean-minimal, clean-minimal-gallery, clean-minimal-list, default-minimal, default-overlay, default-shine, pulse, pulse-spotlight, pulse-strip, starlight, starlight-grid, starlight-spotlight

buy-box

Variants: classic, clean-minimal, pulse, starlight

product-buy-box

product-form

Variants: pulse, starlight

details

Variants: classic, clean-minimal, pulse, starlight Variants: classic, clean-minimal, pulse, starlight

stock-countdown

discord-role-claim

Also accepts the shared surface settings.

license-delivery

System pages

One block per built-in page. These render a whole page rather than a section, so a page holds exactly one of them.

page-cart

This block takes no settings of its own. Variants: classic, clean-minimal, pulse, starlight

page-checkout

This block takes no settings of its own. Variants: classic, clean-minimal, pulse, starlight

page-all-products

Variants: classic, clean-minimal, pulse, starlight

page-not-found

This block takes no settings of its own. Variants: classic, clean-minimal, pulse, starlight

page-faq-page

Variants: classic, clean-minimal, pulse, starlight

page-reviews-page

Variants: classic, clean-minimal, pulse, starlight

page-feedback-page

Variants: classic, pulse, starlight

page-status-page

Variants: classic, pulse, starlight

page-tool-page

Also accepts the shared surface settings. Variants: classic, clean-minimal, pulse, starlight

page-trust-page

Variants: starlight

page-guide-page

Variants: classic, pulse, starlight

page-contact-page

Variants: classic, clean-minimal, pulse, starlight

terms-page

This block takes no settings of its own. Variants: classic, clean-minimal, pulse

Advanced

Escape hatches. Use them when no other block fits.

custom-html

Variants: classic, clean-minimal, pulse, starlight

ai-section

Also accepts the shared surface settings. Variants: classic, clean-minimal, pulse, starlight