
# Plugin de formulários

`@tailwindcss/forms` é uma versão 1:1 PHP do plugin oficial de formulários. Ele aplica uma redefinição opinativa aos controles de formulário — campos de texto, áreas de texto, listas de seleção, caixas de seleção e botões de opção — estabelecendo uma base consistente (redefinição da aparência, borda, espaçamento interno, anel de foco, chevron personalizado nas listas de seleção e ícones para caixas de seleção e botões de opção) que você pode então substituir com utilitários.

## Uso

Carregue o plugin com `@plugin` e importe a camada de utilitários:

```php
use TailwindPHP\tw;

$css = tw::generate(
    '<input class="form-input"><select class="form-select"></select>',
    '@plugin "@tailwindcss/forms"; @import "tailwindcss/utilities.css";'
);
```

## Estratégia

A opção `strategy` controla como os estilos são aplicados:

| Estratégia | Comportamento |
|----------|----------|
| `base` | Aplica estilos globalmente aos elementos nativos de formulário com seletores como `[type='text']`, `textarea` e `select`. |
| `class` | Aplica estilos somente às classes `form-*` explícitas, deixando intactos os elementos sem classe. |

Quando `strategy` é omitida, as duas estratégias são aplicadas: os elementos nativos recebem a redefinição base e as classes `form-*` também ficam disponíveis. Defina uma única estratégia para desativar a outra:

```css
@plugin "@tailwindcss/forms" {
    strategy: "class";
}
```

## Estratégia por classe

Com a estratégia `class` (ou a padrão), aplique explicitamente estas classes aos elementos que deseja estilizar:

| Classe | Elemento |
|-------|---------|
| `form-input` | Campos de entrada semelhantes a texto |
| `form-textarea` | `<textarea>` |
| `form-select` | `<select>` |
| `form-multiselect` | `<select multiple>` |
| `form-checkbox` | `<input type="checkbox">` |
| `form-radio` | `<input type="radio">` |

```php
$css = tw::generate(
    '
        <input class="form-input">
        <textarea class="form-textarea"></textarea>
        <select class="form-select"></select>
        <select class="form-multiselect" multiple></select>
        <input type="checkbox" class="form-checkbox">
        <input type="radio" class="form-radio">
    ',
    '
        @plugin "@tailwindcss/forms" {
            strategy: "class";
        }
        @import "tailwindcss/utilities.css";
    '
);
```

Cada classe redefine a aparência do controle e define bordas, espaçamento interno e um anel de foco; `form-select` adiciona uma imagem de fundo com chevron, e `form-checkbox`/`form-radio` adicionam ícones para o estado marcado. Substitua qualquer um desses estilos com utilitários comuns (por exemplo, `class="form-input rounded-lg border-gray-300"`).

Consulte [Plugins](https://tailwindphp.inline0.dev/pt/docs/plugins) para ver a diretiva `@plugin` e os detalhes de carregamento.
