Seed

CLI & Build

O Seed oferece uma CLI completa para criar projetos, desenvolver com live reload e gerar builds de produção.

Comandos

seed init

```bash
seed init <nome> [--theme <src>] [--components <src>]
```

Cria um novo projeto com a estrutura completa de pastas e um seed.yaml inicial. Ao final, oferece instalar a biblioteca de componentes seed-ui caso --components não tenha sido passado.

seed dev

```bash
seed dev <pasta> [porta]
```

Inicia o dev server com live reload na porta 8000 (padrão). Durante o servidor, teclas de atalho estão disponíveis:

TeclaAção
oAbre o browser
bRebuilda todos os arquivos
rReinicia o servidor
qEncerra

seed build

```bash
seed build <pasta>
```

Gera o build de produção em dist/. Limpa o dist/ antes de rebuildar, copia seed.css, seed.js e os assets de src/static/ e do tema (se houver).

seed theme-install / theme-update

```bash
seed theme-install <projeto> <path|github-url>
seed theme-update  <projeto> <path|github-url>
```

Instala ou atualiza um tema em libs/themes/ e atualiza o seed.yaml. Se o tema já estiver instalado, theme-install pergunta antes de sobrescrever.

seed components-install / components-update

```bash
seed components-install <projeto> <path|github-url>
seed components-update  <projeto> <path|github-url>
```

Instala ou atualiza uma biblioteca de componentes em libs/components/ e atualiza o seed.yaml. Suporta caminhos locais e URLs do GitHub.

seed.yaml

O arquivo seed.yaml na raiz do projeto configura o tema e a biblioteca de componentes ativos:

```yaml
theme: meu-tema
components: seed-ui
```

O Seed resolve os diretórios automaticamente: libs/themes/meu-tema/ e libs/components/seed-ui/.

Estrutura de output

```
dist/
├── index.html         # páginas renderizadas
├── seed.css           # CSS do core (copiado automaticamente)
├── seed.js            # JS do core (copiado automaticamente)
└── static/            # assets (copiados de src/static/ e tema)
```
ℹ️

seed.css e seed.js são sempre sobrescritos a cada build — não os edite diretamente. Para CSS extra, use extra_css no front matter apontando para arquivos em src/static/.