
# Použití

Základní postup tvoří jediné volání: předejte TailwindPHP svůj obsah a volitelnou konfiguraci CSS a vrátí se CSS pro nalezené třídy. Názvy tříd se získají ze značek, zkompilují podle vyřešeného tématu a výsledkem jsou pouze utility, které skutečně používáte.

```php
use TailwindPHP\tw;

$css = tw::generate('<div class="flex items-center p-4 bg-blue-500">Hello</div>');
```

Bez druhého argumentu použije `generate()` výchozí `@import "tailwindcss"` (téma + [Preflight](https://tailwindphp.inline0.dev/cs/docs/usage/imports) + utility). Pro úpravy předejte řetězec CSS nebo pole.

## Prohledávání obsahu

TailwindPHP hledá názvy tříd v atributech `class` a `className` vašeho obsahu. Chcete-li zjistit, co se z něj načítá, použijte `tw::extractCandidates()`:

```php
use TailwindPHP\tw;

tw::extractCandidates('<div class="flex p-4" className="bg-blue-500">');
// ['flex', 'p-4', 'bg-blue-500']
```

Prohledávají se atributy `class` i `className` a vrácený seznam neobsahuje duplicity. Stejným způsobem se získají i libovolní kandidáti (například `[mask-type:luminance]` nebo `bg-[#1da1f2]`) a platní se zkompilují. Vše, co se zde objeví, zkompiluje přesně `generate()`.

## Vstupní formáty

Každá statická metoda přijímá stejné tři tvary vstupu:

| Formát | Signatura | Kdy použít |
|--------|-----------|----------|
| Pouze řetězec | `tw::generate($content)` | Výchozí téma bez úprav. |
| Řetězec + řetězec CSS | `tw::generate($content, $css)` | Rychlé úpravy tématu nebo direktivy přímo ve vstupu. |
| Pole | `tw::generate(['content' => ..., 'css' => ...])` | Potřebujete `minify`, `importPaths` nebo `cache`. |

```php
use TailwindPHP\tw;

// Format 1: String only
tw::generate('<div class="flex">');

// Format 2: String + CSS string
tw::generate('<div class="flex">', '@import "tailwindcss"; @theme { --color-brand: #3b82f6; }');

// Format 3: Array with content, css, and options
tw::generate([
    'content' => '<div class="flex p-4">',
    'css'     => '@import "tailwindcss";',
    'minify'  => true,
]);
```

Možnosti přijímá pouze varianta s polem. Kromě `css` a `minify` podporuje také `importPaths` (viz [Importy](https://tailwindphp.inline0.dev/cs/docs/usage/imports)), `cache` a `cacheTtl` (viz [Ukládání do mezipaměti](https://tailwindphp.inline0.dev/cs/docs/advanced/caching)).

## Opakovaně použitelný kompilátor

Při kompilaci mnoha úryvků se stejnou konfigurací — například v cyklu požadavků, pro sadu šablon nebo knihovnu komponent — je výhodnější použít jedinou instanci kompilátoru. `tw::compile()` jednou vyřeší téma a systém návrhu a poté je znovu používá:

```php
use TailwindPHP\tw;

$compiler = tw::compile('@import "tailwindcss"; @theme { --color-brand: #3b82f6; }');

$css        = $compiler->generate('<div class="flex p-4 bg-brand">');
$candidates = $compiler->extractCandidates('<div class="flex p-4 bg-brand">');
$minified   = $compiler->minify($css);
```

Kompilátor také nabízí kontrolu vlastností (`properties()`, `computedProperties()`, `value()`, `computedValue()`) a přístupové metody k tématu (`colors()`, `breakpoints()`, `spacing()`). Úplný přehled všech metod najdete v [API](https://tailwindphp.inline0.dev/cs/docs/api).

## Konfigurace vstupu CSS

Většina možností TailwindPHP spočívá v řetězci CSS, který předáte jako konfiguraci. Pokračujte na:

- [Motiv](https://tailwindphp.inline0.dev/cs/docs/usage/theme) — `@theme` proměnné a jmenné prostory.
- [Direktivy](https://tailwindphp.inline0.dev/cs/docs/usage/directives) — `@apply`, `@utility`, `@layer`, `@custom-variant`.
- [Importy](https://tailwindphp.inline0.dev/cs/docs/usage/imports) — `@import`, virtuální moduly, `importPaths` a Preflight.
- [@source](https://tailwindphp.inline0.dev/cs/docs/usage/source) — určují, které soubory a třídy se prohledávají.
