/preview e na vitrine publicada.
A Corvex não precisa conhecer a biblioteca — ela compila e serve o bundle do tema. A lógica da lib fica no seu repositório, não no core da plataforma.
Modelo mental
Passo a passo
1. package.json no tema
O corvex init já cria um package.json no scaffold. Se o projeto for antigo, adicione manualmente na raiz do tema:
2. Instalar a lib
Na pasta do tema:3. Usar na section (código do tema)
Prefira encapsular emlib/ ou hook local — não espalhe lógica imperativa no JSX da section.
4. Build
corvex build) usa esbuild e gera:
5. Sync na loja
node_modules nunca é enviado. Só o que foi compilado em .corvex/theme.js.
O que entra no bundle vs. o que o host fornece
O host carrega seu bundle e injeta dependências externas — uma única instância de React e runtime Corvex para Editor e vitrine. Não importe o pacote do editor. Use só
@corvex/runtime e @corvex/theme-sdk.
CSS de libs npm
O esbuild trataimport 'lib/dist/style.css' como texto — esse CSS não entra automaticamente em .corvex/theme.css.
Para carrossel sem lib imperativa, prefira o cookbook Slider (React + CSS) — zero dependência npm.
Editor vs. preview vs. vitrine
Regra: depois de
corvex build, rode corvex sync para Builder e /preview mostrarem o mesmo artifact.
Libs que mexem no DOM (Flickity, Swiper imperativo)
A plataforma reparenta blocks ao mover/deletar no editor. Libs que montam viewport/slider próprio podem quebrar no builder. Contrato do tema: prefira carrossel em React + CSS. Lib que monta o slider no DOM não tem evento público de teardown.- Implemente mount/unmount no tema (
lib/useSlideshowFlickity.jsou similar) e destrua a instância no cleanup douseEffect. - No iframe do Editor, sincronize estilos antes de medir altura (viewport 0 quebra mount):
Carrossel no editor
useBuilderBlockEditLayout() existe e sempre retorna false. Não desligue o carrossel nem troque a árvore com esse hook. O inspecionar não muda o layout. Detalhe: Runtime API.
Blocks + carrossel horizontal
Erro comum: tratarchildren como lista de slides. No editor, children é quase sempre um BlockCanvasRoot com todos os blocks dentro.
.my-carousel__track > .cx-block. Armadilhas: Erros do editor.
Carrossel com vídeo da biblioteca: leia Carrossel de vídeos (Reels) — HLS, marquee e loop de requisições são armadilhas comuns na vitrine.
Checklist antes de publicar
-
npm installna raiz do tema (não na pasta da section) -
corvex validate .passa -
corvex build .passa sem erro de resolução de módulo - CSS da lib coberto (
styles.css,assets/ou injeção no hook) - Testado no Editor (iframe) e em
/preview - Lib imperativa:
destroyno cleanup douseEffect -
corvex syncapós build para alinhar draft e catálogo -
.corvex/enode_modules/no.gitignore
Limitações atuais
Referências
- CLI — fluxo build/sync
- Arquitetura do tema
- Cookbook Slider — carrossel sem lib npm
- Runtime API —
@corvex/runtimeno Editor - Pitfalls do Editor — blocks, marquee, hidratação no builder

