
# Eklentiler

TailwindPHP, resmi TailwindCSS eklentilerinin PHP bağlantı noktalarını içerir ve yerel bir PHP eklenti API arayüzü sunar. Eklentiler yardımcıları, bileşenleri ve varyantları kaydeder; girdi CSS dosyanızdaki `@plugin` yönergesiyle yüklenir. Yerleşik eklentiler, JavaScript karşılıklarının 1:1 bağlantı noktalarıdır; aynı seçicileri ve çıktıyı PHP içinde uygular, Node üzerinden çalıştırmaz. Bugün için bir istisna var: tipografi eklentisinin öğe değiştiricileri (`prose-headings:`, `prose-a:`, …), henüz uygulanmayan eklenti varyantlarına bağlıdır ([#10](https://github.com/inline0/tailwindphp/issues/10)).

## `@plugin` kullanımı

Bir eklentiye `@plugin` ile adıyla başvurun. Yerleşik eklentiler kendi npm paket adını kullanır. Eklentinin sınıflarının yardımcılar katmanına eklenmesi için yönergeyi `@import "tailwindcss/utilities.css";` ile eşleştirin:

```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";
    ',
]);
```

Birden fazla eklenti birlikte yüklenebilir ve sıralama önemli değildir:

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

`@plugin` başka bir at-kuralının (örneğin `@media`) içine yerleştirilemez; ayrıca kayıtlı olmayan bir eklenti adı hata verir.

## Eklenti seçenekleri

Bir eklentiye seçenek iletmek için addan sonra CSS blok söz dizimini kullanın. Anahtarlar, eklentinin seçenek dizisindeki değerlerle eşleşir:

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

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

`@tailwindcss/forms` eklentisi `strategy` (`base` veya `class`) kabul eder; `@tailwindcss/typography` ise oluşturulan `prose` sınıfını yeniden adlandırmak için `className` kabul eder. Seçeneklerin tamamı için eklenti sayfalarına bakın.

## Yerleşik eklentiler

| Eklenti | Açıklama |
|--------|----------|
| `@tailwindcss/typography` | `prose` sınıfları — zengin metinler için tipografik varsayılanlar. [Tipografi](https://tailwindphp.inline0.dev/tr/docs/plugins/typography) sayfasına bakın. |
| `@tailwindcss/forms` | Sıfırlanabilir, biçimlendirilebilir form denetimleri. [Formlar](https://tailwindphp.inline0.dev/tr/docs/plugins/forms) sayfasına bakın. |

## Özel eklentiler

`PluginInterface` arayüzünü uygulayıp `PluginAPI` üzerindeki yöntemleri kullanarak kendi eklentinizi yazın (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` ve daha fazlası). `registerPlugin(new MyPlugin())` ile kaydederek `getName()` tarafından döndürülen adın `@plugin "my-plugin"` yönergesinde çözümlenmesini sağlayın:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Arayüz, eksiksiz bir örnek ve `PluginAPI` yöntem başvurusunun tamamı için [Özel Eklentiler](https://tailwindphp.inline0.dev/tr/docs/plugins/custom) sayfasına bakın.
