
# Brug

Kernearbejdsgangen er ét kald: giv TailwindPHP dit indhold samt valgfri CSS-konfiguration, så returnerer det CSS for de klasser, det finder. Klassenavne udtrækkes fra markuppen, kompileres med det løste tema, og resultatet indeholder kun de hjælpeklasser, du faktisk bruger.

```php
use TailwindPHP\tw;

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

Uden et andet argument bruger `generate()` en standard-`@import "tailwindcss"` (tema + [Preflight](https://tailwindphp.inline0.dev/da/docs/usage/imports) + hjælpeklasser). Angiv en CSS-streng eller et array for at tilpasse den.

## Indholdsscanning

TailwindPHP finder klassenavne ved at læse attributterne `class` og `className` i dit indhold. Brug `tw::extractCandidates()` for at se, hvad der udtrækkes:

```php
use TailwindPHP\tw;

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

Både attributterne `class` og `className` scannes, og den returnerede liste deduplikeres. Vilkårlige kandidater (som `[mask-type:luminance]` eller `bg-[#1da1f2]`) udtrækkes på samme måde og kompileres, hvis de er gyldige. Alt, hvad der vises her, er præcis det, `generate()` kompilerer.

## Inputformater

Alle statiske metoder accepterer de samme tre inputformer:

| Format | Signatur | Brug når |
|--------|-----------|----------|
| Kun streng | `tw::generate($content)` | Standardtema, ingen tilpasning. |
| Streng + CSS-streng | `tw::generate($content, $css)` | Hurtige temaændringer eller direktiver direkte i strengen. |
| Array | `tw::generate(['content' => ..., 'css' => ...])` | Du har brug for `minify`, `importPaths` eller `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,
]);
```

Arrayformen er den eneste, der tager indstillinger. Ud over `css` og `minify` accepterer den `importPaths` (se [Imports](https://tailwindphp.inline0.dev/da/docs/usage/imports)), `cache` og `cacheTtl` (se [Caching](https://tailwindphp.inline0.dev/da/docs/advanced/caching)).

## Genbrugelig compiler

Det er billigere at kompilere mange fragmenter med den samme konfiguration — en anmodningsløkke, en samling skabeloner eller et komponentbibliotek — med én enkelt compilerinstans. `tw::compile()` løser temaet og designsystemet én gang og genbruger dem derefter:

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

Compileren giver også adgang til egenskabsinspektion (`properties()`, `computedProperties()`, `value()`, `computedValue()`) og temametoder (`colors()`, `breakpoints()`, `spacing()`). Se den fulde [API](https://tailwindphp.inline0.dev/da/docs/api) for alle metoder.

## Konfiguration af inputtet CSS

Det meste af TailwindPHPs funktionalitet findes i strengen CSS, du angiver som konfiguration. Fortsæt med:

- [Tema](https://tailwindphp.inline0.dev/da/docs/usage/theme) — `@theme` variabler og navnerum.
- [Direktiver](https://tailwindphp.inline0.dev/da/docs/usage/directives) — `@apply`, `@utility`, `@layer`, `@custom-variant`.
- [Importer](https://tailwindphp.inline0.dev/da/docs/usage/imports) — `@import`, virtuelle moduler, `importPaths` og Preflight.
- [@source](https://tailwindphp.inline0.dev/da/docs/usage/source) — styr, hvilke filer og klasser der scannes.
