
# Začínáme

## Instalace

```bash
composer require tailwindphp/tailwindphp
```

TailwindPHP vyžaduje PHP 8.2 nebo novější s rozšířeními `ctype` a `mbstring` a také Composer. Obě rozšíření jsou součástí většiny sestavení PHP a oficiálních obrazů Docker; `composer.json` je zatím neuvádí ([#11](https://github.com/inline0/tailwindphp/issues/11)), takže sestavení bez nich balíček nainstaluje, ale při spuštění selže. Není potřeba závislost Node.js, krok sestavení ani npm v obrazu Docker nebo v CI. Stačí `composer require` a zavolat API.

## Vygenerujte své první CSS

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use TailwindPHP\tw;

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

`generate()` prohledá značky, extrahuje nalezené názvy tříd a vygeneruje pouze CSS potřebné pro tyto třídy — nic navíc. Pokud nepředáte druhý argument, použije výchozí `@import "tailwindcss"`, který načte motiv, [Preflight](https://tailwindphp.inline0.dev/cs/docs/usage/imports) a vrstvu utilit.

## Přizpůsobení pomocí řetězce CSS

Jako druhý argument předejte vstupní řetězec CSS a přidejte `@theme` proměnné, vlastní pravidla nebo direktivy. Nové hodnoty motivu se automaticky stanou utilitami:

```php
use TailwindPHP\tw;

$css = tw::generate(
    '<div class="bg-brand p-4">Hello</div>',
    '@import "tailwindcss"; @theme { --color-brand: #3b82f6; }'
);
// .bg-brand now resolves to var(--color-brand)
```

Úplný seznam jmenných prostorů motivu najdete v části [Motiv](https://tailwindphp.inline0.dev/cs/docs/usage/theme).

## Vstupní pole

Pro cokoli složitějšího než jednořádkový zápis předejte pole s klíči `content` a `css`. Zde můžete definovat komponenty pomocí `@apply`:

```php
use TailwindPHP\tw;

$css = tw::generate([
    'content' => '<div class="flex p-4 btn">Hello</div>',
    'css' => '
        @import "tailwindcss";

        @theme {
            --color-brand: #3b82f6;
            --font-heading: "Inter", sans-serif;
        }

        .btn {
            @apply px-4 py-2 rounded-lg bg-brand text-white;
        }
    ',
]);
```

Pole přijímá také `minify`, `importPaths`, `cache` a `cacheTtl`. Formáty vstupu najdete v části [Použití](https://tailwindphp.inline0.dev/cs/docs/usage) a direktivy `@apply`, `@theme`, `@utility` a další v části [Direktivy](https://tailwindphp.inline0.dev/cs/docs/usage/directives).

## Zápis do souboru

`generate()` vrací řetězec, takže šablonu stylů zapíšete jedním řádkem:

```php
use TailwindPHP\tw;

file_put_contents('dist/styles.css', tw::generate([
    'content' => file_get_contents('templates/page.html'),
    'css' => '@import "tailwindcss";',
]));
```

Pro sestavení založená na souborech, která prohledávají adresář šablon, a pro režim sledování použijte místo toho [CLI](https://tailwindphp.inline0.dev/cs/docs/cli). Používá stejné volby sestavení `@tailwindcss/cli`, ale obsah nyní prohledává jinak než Tailwind; na stránce CLI najdete seznam prohledávaných položek.

## Minifikace pro produkční prostředí

Předáním `minify => true` zkomprimujete výstup během generování, případně zavolejte `tw::minify()` nad existujícím řetězcem:

```php
use TailwindPHP\tw;

// Minify during generation
$css = tw::generate([
    'content' => '<div class="flex p-4">Hello</div>',
    'minify' => true,
]);

// Or minify separately
$css = tw::generate('<div class="flex p-4">Hello</div>');
$minified = tw::minify($css);
```

Minifikátor odstraňuje komentáře, slučuje bílé znaky, zkracuje hexadecimální barvy (`#ffffff` na `#fff`) a odstraňuje jednotky u nulových hodnot (`0px` na `0`). Možnosti ukládání do mezipaměti najdete v části [Ukládání do mezipaměti a minifikace](https://tailwindphp.inline0.dev/cs/docs/advanced/caching).

## Další kroky

- [Použití](https://tailwindphp.inline0.dev/cs/docs/usage) — postup generování, prohledávání obsahu a vstupní formáty.
- [Utility tříd](https://tailwindphp.inline0.dev/cs/docs/class-utilities) — `cn()`, `merge()`, `join()` a `variants()`.
- [Doplňky](https://tailwindphp.inline0.dev/cs/docs/plugins) — typografie, formuláře a vlastní doplňky.
- [API](https://tailwindphp.inline0.dev/cs/docs/api) — kompletní rozhraní `tw` a opakovaně použitelné instance kompilátoru.
- [CLI](https://tailwindphp.inline0.dev/cs/docs/cli) — sestavení ze souborů a sledování změn bez Node.js.
