
# البدء

## التثبيت

```bash
composer require tailwindphp/tailwindphp
```

يحتاج TailwindPHP إلى PHP 8.2 أو أحدث، مع إضافتي `ctype` و`mbstring`، وإلى Composer. تتضمن معظم إصدارات PHP وصور Docker الرسمية الإضافتين؛ لكن `composer.json` لا يذكرهما بعد ([#11](https://github.com/inline0/tailwindphp/issues/11))، لذا يُثبّت الإنشاء الخالي منهما الحزمة ثم يفشل أثناء التشغيل. لا توجد تبعية Node.js ولا خطوة إنشاء ولا npm في صورة Docker أو بيئة CI لديك. ما عليك سوى `composer require` واستدعاء API.

## أنشئ أول CSS

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use TailwindPHP\tw;

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

يفحص `generate()` الترميز، ويستخرج أسماء الأصناف التي يعثر عليها، وينشئ فقط CSS اللازمة لتلك الأصناف — لا شيء أكثر. عند عدم تمرير وسيط ثانٍ، يستخدم `@import "tailwindcss"` افتراضيًا يضم السمة و[Preflight](https://tailwindphp.inline0.dev/ar/docs/usage/imports) وطبقة الأدوات.

## التخصيص عبر سلسلة CSS

مرّر سلسلة CSS للإدخال كوسيط ثانٍ لإضافة متغيرات `@theme` أو قواعد مخصصة أو توجيهات. تتحول قيم السمات الجديدة تلقائيًا إلى أدوات:

```php
use TailwindPHP\tw;

$css = tw::generate(
    '<div class="bg-brand p-4">Hello</div>',
    '@import "tailwindcss"; @theme { --color-brand: #3b82f6; }'
);
// .bg-brand now resolves to var(--color-brand)
```

راجع [السمة](https://tailwindphp.inline0.dev/ar/docs/usage/theme) للاطلاع على جميع مساحات أسماء السمات.

## إدخال المصفوفة

لأي شيء يتجاوز السطر الواحد، مرّر مصفوفة تحتوي على المفتاحين `content` و`css`. هنا تعرّف المكونات باستخدام `@apply`:

```php
use TailwindPHP\tw;

$css = tw::generate([
    'content' => '<div class="flex p-4 btn">Hello</div>',
    'css' => '
        @import "tailwindcss";

        @theme {
            --color-brand: #3b82f6;
            --font-heading: "Inter", sans-serif;
        }

        .btn {
            @apply px-4 py-2 rounded-lg bg-brand text-white;
        }
    ',
]);
```

يقبل شكل المصفوفة أيضًا `minify` و`importPaths` و`cache` و`cacheTtl`. راجع [الاستخدام](https://tailwindphp.inline0.dev/ar/docs/usage) لمعرفة تنسيقات الإدخال، و[التوجيهات](https://tailwindphp.inline0.dev/ar/docs/usage/directives) لمعرفة `@apply` و`@theme` و`@utility` وغيرها.

## الكتابة إلى ملف

تعيد `generate()` سلسلة نصية، لذا فإن كتابة ورقة أنماط لا تتطلب سوى سطر واحد:

```php
use TailwindPHP\tw;

file_put_contents('dist/styles.css', tw::generate([
    'content' => file_get_contents('templates/page.html'),
    'css' => '@import "tailwindcss";',
]));
```

لعمليات الإنشاء المعتمدة على الملفات التي تفحص دليل القوالب، وللوضع القائم على المراقبة، استخدم [CLI](https://tailwindphp.inline0.dev/ar/docs/cli) بدلًا منه. يقبل خيارات الإنشاء `@tailwindcss/cli` نفسها، لكن فحص المحتوى فيه يختلف حاليًا عن Tailwind؛ وتوضح صفحة CLI ما الذي يفحصه.

## التصغير للإنتاج

مرّر `minify => true` لضغط المخرجات أثناء الإنشاء، أو استدعِ `tw::minify()` على سلسلة موجودة:

```php
use TailwindPHP\tw;

// Minify during generation
$css = tw::generate([
    'content' => '<div class="flex p-4">Hello</div>',
    'minify' => true,
]);

// Or minify separately
$css = tw::generate('<div class="flex p-4">Hello</div>');
$minified = tw::minify($css);
```

يزيل المصغّر التعليقات، ويقلّص المسافات البيضاء، ويختصر الألوان السداسية (`#ffffff` إلى `#fff`)، ويحذف الوحدات من قيم الصفر (`0px` إلى `0`). راجع [التخزين المؤقت والتصغير](https://tailwindphp.inline0.dev/ar/docs/advanced/caching) لمعرفة خيارات التخزين المؤقت.

## الخطوات التالية

- [الاستخدام](https://tailwindphp.inline0.dev/ar/docs/usage) — سير عمل الإنشاء، وفحص المحتوى، وتنسيقات الإدخال.
- [أدوات الأصناف](https://tailwindphp.inline0.dev/ar/docs/class-utilities) — `cn()` و`merge()` و`join()` و`variants()`.
- [الإضافات](https://tailwindphp.inline0.dev/ar/docs/plugins) — إضافات الطباعة والنماذج والإضافات المخصصة.
- [API](https://tailwindphp.inline0.dev/ar/docs/api) — الواجهة الكاملة لـ`tw` ونسخ المترجم القابلة لإعادة الاستخدام.
- [CLI](https://tailwindphp.inline0.dev/ar/docs/cli) — إنشاء ومراقبة الملفات دون Node.js.
