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

# Assets do tema (CDN)

> Como usar a pasta assets/, referenciar imagens e vídeos, dedupe no sync e o que sobe ao CDN/Stream.

Arquivos do tema ficam em `assets/`. No código e nos JSON você referencia o **path lógico** `/assets/...`. O `corvex sync` e o `corvex publish` sobem esses arquivos ao CDN (imagens/fontes) ou ao Cloudflare Stream (vídeos). O `corvex dev` serve a pasta local.

## Contrato

| Onde | Como |
| - | - |
| `section.jsx` / bloco | `const HERO = '/assets/hero.jpg'` ou fallback `settings.image \|\| '/assets/hero.jpg'` |
| Vídeo no JSX / template | `'/assets/intro.mp4'` (vira URL Stream no publish) |
| `templates/*.json` | `"image": "/assets/hero.jpg"` no setting |
| `schema.json` (`type: "image"`) | `"default": "/assets/hero.jpg"` |
| CSS | `url(/assets/logo.svg)` |

Não grave URL absoluta de CDN/Stream no fonte. Não use path relativo (`./assets/`).

### Extensões e limites

| Tipo | Extensões | Limite |
| - | - | - |
| Imagem / fonte | `jpg` `jpeg` `png` `gif` `webp` `svg` `avif` `ico` `woff` `woff2` `ttf` `otf` `eot` | 10 MB / arquivo |
| Vídeo | `mp4` `webm` `mov` `m4v` | 50 MB / arquivo |
| Total `assets/` | — | 80 MB |

Vídeos maiores ou da loja: use a [biblioteca de vídeos](https://docs-loja.usecorvex.com.br/guides/video-library.md) (picker do editor), não `assets/`.

## Fluxo

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
corvex dev .          # path lógico → pasta local
corvex sync . --open  # sobe assets; dedupe por hash
```

Na publicação, o backend:

1. Recebe `assets[]` com `sha256` e `kind`.
2. **Imagem/fonte:** CAS em `storev2/themes/{slug}/cas/{sha256}{ext}` — se o objeto já existe, **não reenvia**; espelha no path da versão.
3. **Vídeo:** pointer `storev2/themes/{slug}/video-cas/{sha256}.json` — se já houver uid Stream, **reusa**; senão faz upload no mesmo Cloudflare Stream do painel (sem criar item na biblioteca da loja).
4. Reescreve `/assets/...` em templates, schemas, `bundleSource` e `bundleCss`.

## Loja já instalada

* Instalação nova / full install / reseed: defaults saem com URL CDN/Stream.
* Sync só de código: conteúdo do editor preservado. Para reaplicar defaults, use reseed/full install ou o picker.

## Relacionado

* [Criar tema](https://docs-loja.usecorvex.com.br/guides/create-theme.md)
* [Theme defaults](https://docs-loja.usecorvex.com.br/guides/theme-defaults.md)
* [Biblioteca de vídeos](https://docs-loja.usecorvex.com.br/guides/video-library.md)


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