انتقل إلى المحتوى

الإضافات

يتضمن TailwindPHP نسخًا PHP من إضافات TailwindCSS الرسمية، ويوفر واجهة PHP لإضافة API أصلية. تسجل الإضافات الأدوات والمكونات والمتغيرات، ويجري تحميلها باستخدام التوجيه @plugin في ملف الإدخال CSS. الإضافات المدمجة نسخ مطابقة بنسبة 1:1 لنظيراتها JavaScript — بالمحددات والمخرجات نفسها — وقد نُفذت باستخدام PHP بدلًا من تشغيلها عبر Node. ثمة استثناء حاليًا: تعتمد معدّلات العناصر في إضافة typography (prose-headings: وprose-a:، …) على متغيرات الإضافات التي لا تُطبّق بعد (#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 داخل قاعدة توجيهية أخرى (مثل @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 — إعدادات طباعية افتراضية للنص المنسق. راجع Typography.
@tailwindcss/forms عناصر تحكم في النماذج قابلة لإعادة الضبط والتنسيق. راجع Forms.

الإضافات المخصصة

اكتب إضافتك الخاصة بتنفيذ PluginInterface واستخدام دوال PluginAPI (addUtilities وmatchUtilities وaddComponents وaddVariant وtheme وغيرها). سجّلها باستخدام registerPlugin(new MyPlugin()) ليُستدعى الاسم الذي تعيده getName() في توجيه @plugin "my-plugin":

PHP
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());

راجع الإضافات المخصصة لمعرفة الواجهة ومثال كامل والمرجع الكامل لدوال PluginAPI.