
# Primeiros passos

## Instalação

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

TailwindPHP requer PHP 8.2 ou posterior, com as extensões `ctype` e `mbstring`, além de Composer. A maioria das compilações PHP e das imagens oficiais Docker inclui ambas as extensões; `composer.json` ainda não as lista ([#11](https://github.com/inline0/tailwindphp/issues/11)), portanto uma compilação sem elas instala o pacote, mas falha em tempo de execução. Não há dependência de Node.js, etapa de compilação nem npm na sua imagem Docker ou no CI. Basta `composer require` e chamar o API.

## Gere seu primeiro 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()` examina a marcação, extrai os nomes das classes encontrados e gera somente o CSS necessário para essas classes — nada além disso. Sem um segundo argumento, usa um `@import "tailwindcss"` padrão, que inclui o tema, [Preflight](https://tailwindphp.inline0.dev/pt/docs/usage/imports) e a camada de utilitários.

## Personalize com uma string CSS

Passe uma string CSS de entrada como segundo argumento para adicionar variáveis `@theme`, regras personalizadas ou diretivas. Novos valores de tema tornam-se utilitários automaticamente:

```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)
```

Consulte [Tema](https://tailwindphp.inline0.dev/pt/docs/usage/theme) para ver o conjunto completo de namespaces de tema.

## Entrada em array

Para algo além de uma linha, passe um array com as chaves `content` e `css`. É aqui que você define componentes com `@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;
        }
    ',
]);
```

O formato de array também aceita `minify`, `importPaths`, `cache` e `cacheTtl`. Consulte [Uso](https://tailwindphp.inline0.dev/pt/docs/usage) para ver os formatos de entrada e [Diretivas](https://tailwindphp.inline0.dev/pt/docs/usage/directives) para conhecer `@apply`, `@theme`, `@utility` e outras.

## Gravar em um arquivo

`generate()` retorna uma string, então gerar uma folha de estilos é uma operação de uma linha:

```php
use TailwindPHP\tw;

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

Para compilações baseadas em arquivos que examinam um diretório de templates e para o modo de monitoramento, use [CLI](https://tailwindphp.inline0.dev/pt/docs/cli). Ele aceita as opções de compilação `@tailwindcss/cli`, mas hoje a varredura de conteúdo difere da de Tailwind; a página CLI lista o que ele examina.

## Minificar para produção

Passe `minify => true` para comprimir a saída durante a geração ou chame `tw::minify()` em uma string existente:

```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);
```

O minificador remove comentários, reduz espaços em branco, encurta cores hexadecimais (`#ffffff` para `#fff`) e remove unidades de valores zero (`0px` para `0`). Consulte [Cache e minificação](https://tailwindphp.inline0.dev/pt/docs/advanced/caching) para ver as opções de cache.

## Próximas etapas

- [Uso](https://tailwindphp.inline0.dev/pt/docs/usage) — o fluxo de geração, a varredura de conteúdo e os formatos de entrada.
- [Utilitários de classes](https://tailwindphp.inline0.dev/pt/docs/class-utilities) — `cn()`, `merge()`, `join()` e `variants()`.
- [Plugins](https://tailwindphp.inline0.dev/pt/docs/plugins) — tipografia, formulários e plugins personalizados.
- [API](https://tailwindphp.inline0.dev/pt/docs/api) — toda a superfície `tw` e instâncias de compilador reutilizáveis.
- [CLI](https://tailwindphp.inline0.dev/pt/docs/cli) — compilações baseadas em arquivos e monitoradas, sem Node.js.
