# description
A theme is data, not code. See the node and expression definitions: nothing here can call anything, and the storefront renders it by walking the tree.

# properties.dsl.description
The DSL version this bundle was written against.

# properties.version.description
Semver. Patch and minor never remove a section type; a major may, and must ship migrations.

# properties.tokens.description
Design token defaults. A merchant's own choices are layered on top of these.

# properties.tokens.properties.colorBg.description
Page background (color). Default #ffffff.

# properties.tokens.properties.fontHeading.description
Heading font (font). Default "Inter", system-ui, sans-serif.

# properties.tokens.properties.fontBody.description
Body font (font). Default "Inter", system-ui, sans-serif.

# properties.tokens.properties.fontSizeHeading.description
Largest heading size (length). Default 60px.

# properties.tokens.properties.controlRadius.description
Button and field radius (length). Default 0.

# properties.tokens.properties.btnBg.description
Button background (color). Default #000.

# properties.tokens.properties.imageMain.description
Main image, desktop (length). Default 50vw.

# properties.tokens.properties.imageMainMobile.description
Main image, mobile (length). Default 100vw.

# properties.tokens.properties.imageSmall.description
Grid image, desktop (length). Default 25vw.

# properties.tokens.properties.imageSmallMobile.description
Grid image, mobile (length). Default 50vw.

# properties.tokens.properties.imageThumbnail.description
Thumbnail, desktop (length). Default 96px.

# properties.tokens.properties.imageThumbnailMobile.description
Thumbnail, mobile (length). Default 72px.

# properties.tokens.properties.checkoutSummarySide.description
Order summary on the (choice). Default row.

# properties.tokens.properties.checkoutSummaryBg.description
Summary background (color). Default #F3F7FF.

# properties.tokens.properties.checkoutFontHeading.description
Checkout heading font (font). Default ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif.

# properties.tokens.properties.checkoutHeadingSize.description
Checkout heading size (length). Default 24px.

# properties.sections.items.properties.type.description
Namespaced with the theme's slug, e.g. `luxor.hero`. A bare name is reserved for built-in sections.

# properties.sections.items.properties.faq.description
Says these blocks are questions and answers, and which field is which. The page collects every section that declares this into one FAQPage for search engines.

# properties.sections.items.properties.data.description
What this section needs loaded. The page fetches it; the section never queries.

# $defs.expr.description
A value read out of the render scope. Either a literal, a dot path from a root that is in scope, or a concatenation. Nothing here can call anything.

# $defs.expr.oneOf[].properties.get.description
Dot path, up to six parts. The first part must be in scope: settings, theme, block, shop, page, product, collection, cart, customer, data, or an alias introduced by an enclosing each.

# $defs.node.description
One of: box, text, rich, img, link, each, if, slot, icon, money, component.

# $defs.node.allOf[].then.properties.cls.description
Space-separated class names, lower case. Prefixed automatically so theme CSS cannot reach the storefront's own classes; write `.card` in your CSS and `cls: "card"` here.

# $defs.node.allOf[].then.properties.style.description
Inline declarations, held to the same property allowlist as theme CSS. A value may be an expression instead of text, which is how a merchant's colour or type setting reaches a property no class can carry.

# $defs.node.allOf[].then.properties.cls.description
Space-separated class names, lower case. Prefixed automatically so theme CSS cannot reach the storefront's own classes; write `.card` in your CSS and `cls: "card"` here.

# $defs.node.allOf[].then.properties.style.description
Inline declarations, held to the same property allowlist as theme CSS. A value may be an expression instead of text, which is how a merchant's colour or type setting reaches a property no class can carry.

# $defs.node.allOf[].then.properties.cls.description
Space-separated class names, lower case. Prefixed automatically so theme CSS cannot reach the storefront's own classes; write `.card` in your CSS and `cls: "card"` here.

# $defs.node.allOf[].then.properties.style.description
Inline declarations, held to the same property allowlist as theme CSS. A value may be an expression instead of text, which is how a merchant's colour or type setting reaches a property no class can carry.

# $defs.node.allOf[].then.properties.cls.description
Space-separated class names, lower case. Prefixed automatically so theme CSS cannot reach the storefront's own classes; write `.card` in your CSS and `cls: "card"` here.

# $defs.node.allOf[].then.properties.style.description
Inline declarations, held to the same property allowlist as theme CSS. A value may be an expression instead of text, which is how a merchant's colour or type setting reaches a property no class can carry.

# $defs.node.allOf[].then.properties.cls.description
Space-separated class names, lower case. Prefixed automatically so theme CSS cannot reach the storefront's own classes; write `.card` in your CSS and `cls: "card"` here.

# $defs.node.allOf[].then.properties.style.description
Inline declarations, held to the same property allowlist as theme CSS. A value may be an expression instead of text, which is how a merchant's colour or type setting reaches a property no class can carry.

# $defs.node.allOf[].then.properties.cls.description
Space-separated class names, lower case. Prefixed automatically so theme CSS cannot reach the storefront's own classes; write `.card` in your CSS and `cls: "card"` here.

# $defs.node.allOf[].then.properties.style.description
Inline declarations, held to the same property allowlist as theme CSS. A value may be an expression instead of text, which is how a merchant's colour or type setting reaches a property no class can carry.

# $defs.node.allOf[].then.properties.as.description
Name bound to each item inside children. It may not shadow a name already in scope.

# $defs.node.allOf[].then.properties.children.description
Rendered once per block, with `block` in scope.

# $defs.node.allOf[].then.properties.cls.description
Space-separated class names, lower case. Prefixed automatically so theme CSS cannot reach the storefront's own classes; write `.card` in your CSS and `cls: "card"` here.

# $defs.node.allOf[].then.properties.style.description
Inline declarations, held to the same property allowlist as theme CSS. A value may be an expression instead of text, which is how a merchant's colour or type setting reaches a property no class can carry.

# $defs.node.allOf[].then.properties.use.description
A component the storefront provides. A theme places one; it cannot introduce one.

# $defs.themeSection.properties.enabled.description
false hides the section without discarding its settings.