
# CLI

`./vendor/bin/tailwindphp` är en PHP-port av **[@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/next/packages/%40tailwindcss-cli)** utan krav på Node.js. Den använder samma byggalternativ, med undantag för källkartor (`--map`), men genomsöker innehåll på ett annat sätt: se [Vad CLI genomsöker](#what-the-cli-scans). Efter `composer require tailwindphp/tailwindphp` länkas binärfilen in i `vendor/bin/`.

Om du bara behöver CSS vid körning från PHP ska du i stället använda [API](https://tailwindphp.inline0.dev/sv/docs/api) — CLI är avsett för arbetsflöden vid byggsteget som skriver en formatmall till disk.

## Snabbstart

```bash
# Build CSS from an input file
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css

# Watch for changes and rebuild
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css --watch

# Build minified for production
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css --minify
```

## Alternativ

```bash
tailwindphp [-i input.css] [-o output.css] [--watch] [options…]
```

Ange värdet för långa alternativ med `=`: `--input=./src/app.css`, `--output=./dist/styles.css`, `--cwd=/path/to/project`. Ett värde separerat med blanksteg efter ett långt alternativ (`--input ./src/app.css`) ignoreras för närvarande utan felmeddelande, och bygget använder standardvärdena ([#13](https://github.com/inline0/tailwindphp/issues/13)). Korta alternativ tar värdet som nästa argument (`-i ./src/app.css`).

| Alternativ | Beskrivning | Standardvärde |
|---|---|---|
| `-i, --input` | Indatafil för CSS; `--input=-` läser den från stdin | `@import "tailwindcss"` |
| `-o, --output` | Utdatafil | `-` (stdout) |
| `-w, --watch` | Bevaka ändringar och bygg om vid behov | — |
| `-m, --minify` | Optimera och minimera utdata | — |
| `--optimize` | Dokumenterat som "optimera utan att minimera"; minimerar för närvarande på samma sätt som `--minify` ([#9](https://github.com/inline0/tailwindphp/issues/9)) | — |
| `--cwd` | Aktuell arbetskatalog | `.` |
| `-h, --help` | Visa användningsinformation | — |
| `-V, --version` | Skriv ut versionen | — |
| `-v, --verbose` | Skriv ut stackspårningen om ett bygge misslyckas | — |

När `--output` är `-` (standardvärdet) skrivs den kompilerade CSS till stdout, så att du kan skicka den vidare med en pipe. Förloppsmeddelanden (versionsraden och `Done in …ms`) skrivs till stderr.

Till skillnad från `@tailwindcss/cli` finns det inget alternativ för `--map`: TailwindPHP genererar inte källkartor.

## Indata CSS

Skapa en `app.css` med dina import-, tema- och direktivinställningar för Tailwind:

```css
@import "tailwindcss";

@theme {
    --color-brand: #3b82f6;
}
```

## Vad CLI genomsöker

Innehållsskanningen i CLI följer ännu inte `@source` på samma sätt som `@tailwindcss/cli` gör ([#8](https://github.com/inline0/tailwindphp/issues/8)). I den aktuella versionen gäller följande:

- **Utan något `@source`-fildirektiv** i indatavärdet CSS genomsöker CLI arbetskatalogen (`--cwd`) rekursivt. Det omfattar `vendor/` och `node_modules/`; `.gitignore` beaktas inte.
- **Med ett eller flera `@source`-fildirektiv** genomsöker CLI katalogen för indatafilen rekursivt. Sökvägen eller globmönstret i direktivet tillämpas inte: `@source "../templates"` bredvid `src/app.css` genomsöker `src/`, inte `templates/`.
- **`@source not "…"`-direktiv** hoppas över; de utesluter ingenting.
- **`@source inline("…")`** och **`@source not inline("…")`** fungerar som dokumenterat, eftersom kompilatorn hanterar dem själv.

Endast filer med följande filändelser läses: `php`, `html`, `htm`, `twig`, `blade.php`, `vue`, `jsx`, `tsx`, `svelte`, `astro` och `mdx`. Klassnamn hämtas från attributen `class` och `className`, precis som i [`tw::extractCandidates()`](https://tailwindphp.inline0.dev/sv/docs/api#twextractcandidates), så en klass som bara förekommer i en sträng i PHP eller JavaScript hittas inte. Lägg till sådana klasser manuellt med `@source inline("…")`.

Tills det är åtgärdat är den tillförlitliga lösningen att placera en indatafil för CSS högst upp i katalogen du vill genomsöka:

```css
/* templates/app.css: scans templates/ recursively */
@import "tailwindcss";
@source "./";
```

Se [@source](https://tailwindphp.inline0.dev/sv/docs/usage/source) för direktivsyntaxen, inklusive formerna `not` och `inline()`.

## Exempel

```bash
# Build from an input file
tailwindphp -i ./src/app.css -o ./dist/styles.css

# Build minified for production
tailwindphp -i ./src/app.css -o ./dist/styles.css -m

# Watch mode with minification
tailwindphp -i ./src/app.css -o ./dist/styles.css -w -m

# Run against a different working directory
tailwindphp -i app.css -o dist/styles.css --cwd=/path/to/project
```

CLI skapar utdatakatalogen om den inte finns och avslutas med ett fel om indatafilen saknas eller om sökvägarna för indata och utdata är identiska. Övervakningsläget kontrollerar indatafilen och de genomsökta filerna var 500 ms och bygger om när någon av dem ändras eller när en ny fil tillkommer.

## Global installation

Installera globalt för att använda `tailwindphp` varifrån som helst:

```bash
composer global require tailwindphp/tailwindphp

# Now available globally
tailwindphp -i ./src/app.css -o ./dist/styles.css
```

Se [Komma igång](https://tailwindphp.inline0.dev/sv/docs/getting-started) för projektkonfiguration och [API](https://tailwindphp.inline0.dev/sv/docs/api) för generering av körningsbaserad CSS från PHP.
