> ## Documentation Index
> Fetch the complete documentation index at: https://docs-loja.usecorvex.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar um tema completo

> O que o corvex init cria, como validar e compilar, e onde alterar header, vitrine e páginas.

O caminho é o scaffold oficial. `corvex init` copia o starter, ajusta `name` e `slug` no `theme.json` e para. Não monte um segundo tema à mão com outros nomes de seção.

Este percurso foi executado com a CLI deste repositório (`@corvex/theme-cli` 2.3.5), numa pasta vazia fora de qualquer loja: `init`, `validate` e `build` passaram. `auth`, `link` e `sync` não rodaram. Eles exigem conta e loja.

## Pré-requisitos

Node.js `>= 18`. CLI instalada (`npm install -g @corvex/theme-cli`). React básico. Conta e loja só entram no sync.

A pasta de destino precisa estar vazia. Se não estiver, o init recusa com `A pasta de destino não está vazia`.

## Criar

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
mkdir minha-loja
cd minha-loja
corvex init . --name "Minha Loja" --slug minha-loja
```

A CLI imprime o cabeçalho `corvex init`, a frase `Tema criado em …`, `name` e `slug`, e quatro próximos passos numerados: entrar na pasta, `corvex auth`, `corvex link .`, `corvex sync --open`. O slug só aceita `a-z`, `0-9` e hífen.

## O que vem no starter

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
theme.json
layout/theme.jsx
config/settings.schema.json
config/settings.data.json
groups/header.json
groups/footer.json
locales/pt-BR.default.json
locales/en.json
assets/theme.css
blocks/heading/
blocks/text/
snippets/product-card/
sections/header-nav/
sections/hero/
sections/featured-products/
sections/cart-page/
sections/blog-listing/
sections/article/
sections/footer/
templates/index.json
templates/product.json
templates/collection.json
templates/cart.json
templates/search.json
templates/blog.json
templates/article.json
templates/page.json
```

`theme.json` lista essas seções, os blocos `heading` e `text`, e os grupos de layout. O cabeçalho é `header-nav`. O rodapé é `footer`. Não existe `site-header` nem `product-detail` no scaffold.

Os cinco templates obrigatórios são `index`, `product`, `collection`, `cart` e `search`. `blog`, `article` e `page` vêm junto e são recomendados.

A home (`templates/index.json`) coloca a seção `hero` e depois `featured-products`.

## Validar e compilar

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
corvex validate .
corvex build .
```

`validate` pode avisar que faltam `screenshots/desktop` e `screenshots/mobile`. Esse aviso não invalida o tema. Ele importa para o marketplace público. A linha de sucesso é `Tema válido: minha-loja@1.0.0`. O bundle não precisa existir antes do validate.

`build` grava `.corvex/theme.js` e, se o tema tiver locales, `.corvex/locales.json`. Não versione `.corvex/`.

## Ver no editor

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
corvex auth
corvex link .
corvex sync --open
```

`sync` publica uma versão privada e instala na loja vinculada. Sem loja, o comando não tem como abrir o editor. Detalhe das flags: [Comandos](https://docs-loja.usecorvex.com.br/cli/commands.md).

`corvex publish` envia o código ao catálogo. O botão Publicar do editor envia o conteúdo da loja. São ações diferentes.

## Onde continuar

| Tarefa | Página |
| - | - |
| Cabeçalho e menu | [Header](https://docs-loja.usecorvex.com.br/cookbook/header.md) |
| Blocos no hero | [FAQ](https://docs-loja.usecorvex.com.br/cookbook/faq.md) |
| Vitrine | [Card de produto](https://docs-loja.usecorvex.com.br/cookbook/product-card.md) |
| Variante e carrinho | [Seletor](https://docs-loja.usecorvex.com.br/cookbook/variant-selector.md) · [Drawer](https://docs-loja.usecorvex.com.br/cookbook/cart-drawer.md) |
| Cores do tema | [Settings](https://docs-loja.usecorvex.com.br/themes/settings.md) |
| Texto da interface | [Locales](https://docs-loja.usecorvex.com.br/themes/locales.md) |

Não substitua os arquivos do starter pelos exemplos longos de versões antigas deste guia. Parta dos arquivos que o init criou e altere um de cada vez.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.