
# Wtyczka formularzy

`@tailwindcss/forms` to wierny port 1:1 PHP oficjalnej wtyczki formularzy. Zapewnia określony reset kontrolek formularza — pól tekstowych, obszarów tekstowych, list wyboru, pól wyboru i przycisków opcji — nadając im spójny wygląd bazowy (reset wyglądu, obramowanie, dopełnienie, obwódka fokusu, własna strzałka listy wyboru oraz ikony pól wyboru i przycisków opcji), który można następnie nadpisać narzędziami.

## Użycie

Wczytaj wtyczkę za pomocą `@plugin` i zaimportuj warstwę narzędzi:

```php
use TailwindPHP\tw;

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

## Strategia

Opcja `strategy` określa sposób stosowania stylów:

| Strategia | Działanie |
|----------|----------|
| `base` | Stylizuje globalnie natywne elementy formularzy za pomocą selektorów takich jak `[type='text']`, `textarea` i `select`. |
| `class` | Stylizuje tylko jawnie wskazane klasy `form-*`, pozostawiając elementy bez klas bez zmian. |

Gdy pominięto `strategy`, stosowane są **obie** strategie — natywne elementy otrzymują reset bazowy, a klasy `form-*` są również dostępne. Wybierz jedną strategię, aby wyłączyć drugą:

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

## Strategia klas

Przy strategii `class` (lub domyślnej) jawnie dodaj te klasy do elementów, które chcesz stylizować:

| Klasa | Element |
|-------|---------|
| `form-input` | Pola tekstowe i podobne |
| `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";
    '
);
```

Każda klasa resetuje wygląd kontrolki i ustawia obramowanie, dopełnienie oraz obwódkę fokusu; `form-select` dodaje strzałkę jako obraz tła, a `form-checkbox`/`form-radio` dodają ikony zaznaczenia. Nadpisz dowolny z tych stylów zwykłymi narzędziami (na przykład `class="form-input rounded-lg border-gray-300"`).

Zobacz [Wtyczki](https://tailwindphp.inline0.dev/pl/docs/plugins), aby poznać dyrektywę `@plugin` i szczegóły wczytywania.
