
# Πρόσθετα

Το TailwindPHP περιλαμβάνει θύρες PHP των επίσημων πρόσθετων TailwindCSS και παρέχει ένα εγγενές PHP πρόσθετο API. Τα πρόσθετα καταχωρίζουν βοηθητικές κλάσεις, στοιχεία και παραλλαγές· φορτώνονται με την οδηγία `@plugin` στο αρχείο εισόδου CSS. Τα ενσωματωμένα πρόσθετα είναι θύρες 1:1 των αντίστοιχων JavaScript — με τους ίδιους επιλογείς και την ίδια έξοδο — και έχουν υλοποιηθεί σε PHP αντί να εκτελούνται μέσω Node. Μια εξαίρεση προς το παρόν: οι τροποποιητές στοιχείων του πρόσθετου τυπογραφίας (`prose-headings:`, `prose-a:`, …) βασίζονται σε παραλλαγές πρόσθετων, οι οποίες δεν εφαρμόζονται ακόμη ([#10](https://github.com/inline0/tailwindphp/issues/10)).

## Χρήση του `@plugin`

Αναφερθείτε σε ένα πρόσθετο με το όνομά του μέσω του `@plugin`. Τα ενσωματωμένα πρόσθετα χρησιμοποιούν το όνομα πακέτου npm τους. Συνδυάστε την οδηγία με το `@import "tailwindcss/utilities.css";`, ώστε οι κλάσεις του πρόσθετου να παραχθούν στο επίπεδο βοηθητικών κλάσεων:

```php
use TailwindPHP\tw;

$css = tw::generate([
    'content' => '<article class="prose prose-lg"><h1>Hello</h1><p>Content here</p></article>',
    'css' => '
        @plugin "@tailwindcss/typography";
        @import "tailwindcss/utilities.css";
    ',
]);
```

Μπορείτε να φορτώσετε πολλά πρόσθετα μαζί, ανεξάρτητα από τη σειρά τους:

```css
@plugin "@tailwindcss/typography";
@plugin "@tailwindcss/forms";
@import "tailwindcss/utilities.css";
```

Το `@plugin` δεν μπορεί να είναι ένθετο μέσα σε άλλη οδηγία at-rule (όπως το `@media`), ενώ ένα όνομα πρόσθετου που δεν έχει καταχωριστεί προκαλεί σφάλμα.

## Επιλογές πρόσθετων

Περάστε επιλογές σε ένα πρόσθετο με σύνταξη μπλοκ CSS μετά το όνομα. Τα κλειδιά αντιστοιχούν στον πίνακα επιλογών του πρόσθετου:

```css
@plugin "@tailwindcss/forms" {
    strategy: "class";
}

@plugin "@tailwindcss/typography" {
    className: "markdown";
}
```

Το πρόσθετο `@tailwindcss/forms` δέχεται `strategy` (`base` ή `class`)· το `@tailwindcss/typography` δέχεται `className` για να μετονομάσει την κλάση `prose` που δημιουργείται. Δείτε τις σελίδες κάθε πρόσθετου για όλες τις επιλογές.

## Ενσωματωμένα πρόσθετα

| Πρόσθετο | Περιγραφή |
|--------|-------------|
| `@tailwindcss/typography` | Οι κλάσεις `prose` — τυπογραφικές προεπιλογές για εμπλουτισμένο κείμενο. Δείτε την [Τυπογραφία](https://tailwindphp.inline0.dev/el/docs/plugins/typography). |
| `@tailwindcss/forms` | Επαναφέρσιμα στοιχεία φορμών που μπορούν να μορφοποιηθούν. Δείτε τις [Φόρμες](https://tailwindphp.inline0.dev/el/docs/plugins/forms). |

## Προσαρμοσμένα πρόσθετα

Γράψτε το δικό σας πρόσθετο υλοποιώντας το `PluginInterface` και χρησιμοποιώντας τις μεθόδους του `PluginAPI` (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` και άλλες). Καταχωρίστε το με το `registerPlugin(new MyPlugin())`, ώστε το όνομα που επιστρέφει το `getName()` να επιλύεται σε μια οδηγία `@plugin "my-plugin"`:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Δείτε τα [Προσαρμοσμένα πρόσθετα](https://tailwindphp.inline0.dev/el/docs/plugins/custom) για τη διεπαφή, ένα πλήρες παράδειγμα και την πλήρη αναφορά μεθόδων του `PluginAPI`.
