> ## 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.

# Presets de seção e bloco

> Variantes no modal Adicionar seção/bloco — settings e blocos iniciais declarados no schema.

Presets são **configurações prontas** que o lojista escolhe ao adicionar uma seção ou um bloco no editor. Depois de adicionados, viram conteúdo normal da loja (como na Shopify).

Não confunda com:

| Mecanismo | Uso |
| - | - |
| `default` em um campo | Valor inicial de **um** setting |
| **Preset** | Variante no modal **Adicionar seção** / **Adicionar bloco** |
| **Theme Defaults** (`templates/*.json`) | Layout inicial da página na instalação |

Guia relacionado: [Defaults de section e block](https://docs-loja.usecorvex.com.br/guides/theme-defaults.md).

***

## Seção (`sections/{id}/schema.json`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "name": "Hero",
  "category": "Banner",
  "settings": [ … ],
  "presets": [
    {
      "name": "Hero centralizado",
      "category": "Banners",
      "settings": { "layout": "center" }
    },
    {
      "name": "Hero promocional",
      "settings": {
        "title": "Ofertas",
        "height": "medium"
      },
      "blocks": [
        { "type": "heading", "settings": { "text": "50% OFF" } },
        { "type": "button", "settings": { "label": "Ver ofertas" } }
      ]
    }
  ]
}
```

| Campo | Obrigatório | Descrição |
| - | - | - |
| `name` | Sim | Nome na lista do editor |
| `category` | Não | Agrupa no modal; senão usa `schema.category` |
| `settings` | Não | Sobrescreve defaults dos campos |
| `blocks` | Não | Lista ordenada; cada `type` deve existir em `blocks.json` da seção |

Seção **sem** `presets`: uma entrada com o `name` da seção (comportamento anterior).

***

## Bloco (`blocks/{id}/schema.json`)

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "name": "Slide",
  "settings": [ … ],
  "presets": [
    {
      "name": "Slide com link",
      "settings": {
        "heading": "Promoção",
        "linkLabel": "Comprar agora"
      }
    }
  ]
}
```

Presets de bloco aceitam apenas `settings` (sem `blocks` aninhados).

***

## Validação e build

`corvex validate` confere:

* chaves em `preset.settings` existem em `schema.settings`;
* `preset.blocks[].type` está em `sections/{id}/blocks.json`.

O build embute o schema no bundle; o editor lê `presets` em tempo de execução.

***

## Lojista (editor e loja publicada)

| Pergunta | Resposta |
| - | - |
| O que o lojista vê? | Nomes dos presets na lista **Adicionar seção** / **Adicionar bloco** (agrupados por categoria). |
| Ao escolher um preset | A seção ou o bloco entra na página com os textos, cores e itens que o tema definiu — como qualquer conteúdo editável. |
| Persistência | **Salvar alterações** e **Publicar** gravam settings e blocos na loja. Não existe “modo preset” depois disso. |
| Storefront | A loja publicada mostra o mesmo conteúdo que o editor após publicar. O runtime **não** relê `presets` do schema. |
| Tema desatualizado | Se a lista não mostra variantes novas, a loja precisa da versão do tema que o desenvolvedor sincronizou (`corvex sync`). |

***

## Regras para LLM

1. Use **preset** para variantes que o lojista escolhe ao **adicionar** (hero promocional vs hero padrão).
2. Use **Theme Defaults** para a home/PDP já montadas na instalação.
3. Não simule presets com arrays hardcoded no JSX quando `{children}` está vazio.
4. Depois de publicar, não há “modo preset” na loja — só settings e blocos salvos.


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