Theme Contract
Esta página é o contrato canônico para Themes na Corvex Store V2.Um Theme é um pacote versionado com sections/blocks React, templates JSON, layout e settings globais. A CLI V2 e o scaffold oficial (
corvex init) definem o contrato normativo.
MUST — estrutura de diretórios
.corvex/theme.js, .corvex/theme.css.
MUST — theme.json
Cada ID em
sections MUST ter sections/{id}/section.jsx e sections/{id}/schema.json.
Cada ID em blocks MUST ter blocks/{id}/block.jsx e blocks/{id}/schema.json.
MUST — layout
- Arquivo:
layout/theme.jsx - MUST exportar componente React que aceita
{ children }e envolve o conteúdo da página.
theme.json:
ThemeLayout. A plataforma aplica .cx-theme-scope e copia classes *theme-root* extraídas do CSS do tema para esse wrapper. As folhas de estilo do tema não são reescritas.
O validador exige o arquivo layout/theme.jsx. Ele não confere o nome do export.
SHOULD declarar as mesmas classes raiz em theme.json quando elas não se chamam *theme-root* nem *layout-root*:
Compatibilidade iframe do editor
SHOULD — escopo CSS (tema vs editor)
No builder, tema e chrome do editor compartilham a mesma página. MUST NOT definir tokens do tema em:root, html, body ou document.documentElement.
- SHOULD prefixar CSS com a classe raiz do layout (
my-theme-root) e raízes de header/footer em layout groups - SHOULD NOT usar seletores globais (
*,button,.container) sem prefixo de tema - A plataforma aplica settings do tema só dentro de
.cx-theme-scope. O CSS do tema precisa respeitar esse isolamento.
MUST — templates obrigatórios
Arquivostemplates/{type}.json MUST existir para:
index, product, collection, cart, search
Page Contract
MUST — theme settings
config/settings.schema.jsonMUST existir.- Estrutura:
groups[]comname+settings[]; OPTIONALcolor_schemes[],defaults.
MUST — layout groups
layoutGroups define sections globais (ex.: header/footer):
groups/{groupId}.json.
Naming — componentes exportados
O build CLI gera imports e
export const components = { HeroSection, … }.
Lifecycle público
Restrições
- MUST NOT depender de APIs admin ou autenticação interna da Corvex.
- Evitar formatos legados (Corvex Store V1,
pages/*.jsonV1) — use a estrutura V2 documentada neste contrato. - Não crie
templates/checkout.json. O checkout da loja não é um arquivo de tema. O tema envia o visitante comgoToCheckout()do SDK.
Exemplo mínimo válido
Use o scaffold oficial:corvex init my-theme.