Seed

Props & Variantes

Props são os parâmetros que você passa para componentes. Variantes são conjuntos predefinidos de classes CSS que alteram a aparência de um componente.

Props reservadas

PropTipoDescrição
variantstringSeleciona variante CSS do componente (primary, dark, etc.)
designstringSeleciona design template (default, center, cards, etc.)
classstringClasses CSS extras adicionadas após as classes base e de variante
hrefstring` se não for tag `a` data-node-id="380620ab">
targetstringAtributo target para o link (_blank, _self, etc.)
relstring

Props HTML passthrough

Qualquer prop não reservada é passada como atributo HTML do elemento:

```seed
@button variant=primary, type=submit, form=meu-form, aria-label=Enviar
  Enviar

@image src=/foto.jpg, alt=Minha foto, loading=lazy, width=800, height=600
```

Prioridade de classes

A ordem de aplicação das classes é:

  • 1. Classes base (definidas no YAML, ex: inline-flex items-center)
  • 2. Classes de variante (selecionadas por variant=, ex: bg-indigo-600)
  • 3. Classes custom (passadas via class=, ex: w-full mt-4)

Quando duas classes têm o mesmo prefixo CSS (ex: bg-), a de maior prioridade vence. Isso permite sobrescrever a cor de fundo de uma variante sem duplicar classes.

Múltiplas variantes

Você pode combinar múltiplas variantes separadas por espaço:

```seed
@button variant=primary large
  Botão grande primário
```

Deduplicação de classes

O Seed deduplica classes com o mesmo prefixo CSS automaticamente. Por exemplo, se a base tem bg-gray-200 e a variante tem bg-indigo-600, o output final usa apenas bg-indigo-600.

⚠️

A deduplicação funciona para prefixos conhecidos do Tailwind. Classes customizadas sem prefixo reconhecido não são deduplicadas e podem gerar conflitos.

Flags booleanas

Props sem valor e sem = são tratadas como flags booleanas true:

```seed
@button variant=primary, disabled
  Desabilitado
```

Gera: <button class="..." disabled>Desabilitado</button>