Tailwind CSS v4: عصر الإعداد CSS-First
محرك Oxide الجديد ورموز @theme المضمنة والانتقال من tailwind.config.js إلى إعداد حديث CSS-first.
يمثل Tailwind CSS v4 إعادة تصور جذرية لإطار العمل utility-first الذي هيمن على تنسيق الواجهات الأمامية منذ 2017. محرك Oxide الجديد، المكتوب بلغة Rust، يقدم أوقات بناء أسرع بكثير مع إدخال نموذج تكوين CSS-first يبدو أكثر طبيعية لتطوير الويب الحديث. سواء كنت تبدأ مشروعًا جديدًا أو ترحّل قاعدة كود موجودة، فإن فهم معمارية v4 ضروري لاتخاذ قرارات تنسيق مدروسة في 2026.
محرك Oxide: أساس جديد
اعتمدت الإصدارات السابقة من Tailwind على PostCSS وخط أنابيب مسح قائم على JavaScript لاكتشاف استخدام الفئات وإنشاء ورقة الأنماط النهائية. يستبدل الإصدار 4 هذا الخط بالكامل بـ Oxide، محرك مدعوم بـ Rust يحلل ملفات المصدر ويحل التبعيات ويُخرج CSS محسّنًا في جزء صغير من الوقت.
تحسينات الأداء ليست هامشية. تُظهر المعايير على monorepos كبيرة انخفاض أوقات البناء من عدة ثوانٍ إلى أقل من 200 milliseconds للإعادة البناء التزايدية. لتجربة المطور، يعني ذلك ردود فعل شبه فورية عند حفظ الملف — تحسين يراكم على مئات التعديلات يوميًا.
- سرعة أصلية — compilation Rust يزيل عبء JavaScript في الإصدارات السابقة.
- خط أنابيب موحد — معالجة الاستيراد والبادئات vendor والتداخل مدمجة.
- مخرجات أصغر — إزالة أكثر عدوانية للكود الميت تُنتج CSS إنتاجيًا أنحف.
- رسائل خطأ أفضل — يقدم Oxide تشخيصات أوضح عند تشوه الفئات أو التوجيهات.
يُدخل المحرك أيضًا دعمًا من الدرجة الأولى لميزات CSS الحديثة مثل cascade layers والخصائص المخصصة المسجلة وقاعدة @property، مما يضمن بقاء Tailwind متوافقًا مع تطور المنصة بدل مقاتلتها.
التكوين CSS-first مع @theme
أبرز تغيير في v4 هو الانتقال من tailwind.config.js إلى تكوين CSS أصلي باستخدام توجيه @theme. بدل تصدير كائن JavaScript، تُعرّف design tokens مباشرة في ملف CSS كخصائص مخصصة.
@import "tailwindcss";
@theme {
--color-brand-50: oklch(0.97 0.02 250);
--color-brand-500: oklch(0.55 0.2 250);
--color-brand-900: oklch(0.25 0.08 250);
--font-display: "Inter", system-ui, sans-serif;
--font-mono: "JetBrains Mono", monospace;
--spacing-page: 1.5rem;
--radius-card: 0.75rem;
--breakpoint-3xl: 120rem;
}
تُنشئ هذه الرموز تلقائيًا فئات utility المقابلة. تعيين --color-brand-500 يُنشئ bg-brand-500 وtext-brand-500 وborder-brand-500 وكل متغيرات اللون الأخرى. هذا الانقلاب — CSS يقود التكوين بدل JavaScript يُنشئ CSS — يجعل النظام أكثر قابلية للفحص وأسهل للدمج مع أدوات التصميم التي تتحدث لغة الخصائص المخصصة.
لماذا تهم الخصائص المخصصة
لأن قيم الثيم هي خصائص CSS مخصصة قياسية، يمكنك تجاوزها وقت التشغيل دون إعادة بناء. الوضع الداكن وثيمات التباين العالي وتبديلات تفضيلات المستخدم تصبح تبديلات بسيطة لمتغيرات CSS بدل توليد فئات شرطي. هذا يفتح الباب لـ theming ديناميكي حقيقي كانت إصدارات Tailwind السابقة تتعامل معه بصعوبة عبر plugins JavaScript.
الترحيل من v3 إلى v4
يتطلب ترحيل مشروع موجود نهجًا منهجيًا. يوفر فريق Tailwind أداة ترقية آلية، لكن فهم الخطوات اليدوية يساعدك على معالجة الحالات التي لا تستطيع الأداة حلها.
ابدأ بنقاط التحقق التالية:
- استبدل توجيهات
@tailwind base/components/utilitiesبعبارة@import "tailwindcss"واحدة. - حوّل امتدادات ثيم
tailwind.config.jsإلى كتل@themeفي ملف CSS الرئيسي. - حدّث تكوين PostCSS — v4 يضم plugin PostCSS خاصًا به، مما يبسط الإعداد.
- أعد تسمية utilities المهجورة — بعض أسماء فئات v3 دُمجت أو أُعيدت تسميتها للاتساق.
- راجع plugins المخصصة — كثير من plugins v3 أصبحت ميزات مدمجة أو تحتاج إعادة كتابة متوافقة مع v4.
/* Before (v3) — tailwind.config.js */
module.exports = {
theme: {
extend: {
colors: {
brand: {
500: "#3b82f6",
},
},
},
},
};
/* After (v4) — globals.css */
@import "tailwindcss";
@theme {
--color-brand-500: #3b82f6;
}
شغّل اختبارات الانحدار البصري بعد الترحيل. رغم أن v4 تهدف لـ output parity، قد تسبب فروقات دقيقة في مقاييس المسافات الافتراضية أو معالجة color space انحرافًا بصريًا في التصاميم pixel-perfect.
Utilities جديدة ومحسّنة
يُقدّم الإصدار 4 تغطية utility موسّعة تقلل الحاجة للقيم العشوائية وCSS مخصص. تحصل container queries على دعم utility من الدرجة الأولى، مما يتيح تنسيق مكوّنات responsive دون media queries. نظام الألوان الافتراضي OKLCH يوفر لوحات متجانسة إدراكيًا تبدو أفضل في الوضعين الفاتح والداكن.
من الإضافات البارزة:
- @starting-style — انتقالات دخول/خروج أصلية للعناصر التي تظهر وتختفي من DOM.
- Field sizing utilities — حقول نماذج تتغير حجمها تلقائيًا دون JavaScript.
- Enhanced gradient utilities — تدرجات conic وradial وcolor-stop متداخلة.
- Logical property utilities — بادئات ms- وme- وps- وpe- للتخطيطات المعولمة.
تعكس هذه utilities فلسفة Tailwind في ترميز الأنماط الشائعة إلى فئات قابلة لإعادة الاستخدام بدل إجبار المطورين على كتابة CSS لمرة واحدة لكل مشروع.
التكامل مع الأُطر
يتكامل Tailwind v4 بسلاسة مع React وVue وSvelte وأُطر أخرى عبر إعداد مبسّط. في مشروع Next.js، تستورد Tailwind مرة واحدة في ملف CSS العام وتزيل مصفوفة plugins PostCSS من التكوين. مشاريع Vite تستفيد من plugin Vite مخصص يتصل بـ Oxide مباشرة، متجاوزًا PostCSS بالكامل لأقصى سرعة.
لمكتبات المكوّنات، يبسط نموذج CSS-first التوزيع. بدل شحن config JavaScript يجب على المستهلكين دمجها، تصدّر ملف CSS برموز @theme مُعرّفة مسبقًا. يستورد المستهلكون طبقة الثيم ويرثون design system فورًا دون تعارضات تكوين.
أفضل الممارسات للإنتاج
اعتماد v4 بفعالية يعني احتضان اتفاقياته بدل مقاتلتها. نظّم رموز الثيم دلاليًا — استخدم أسماء مثل --color-surface-primary بدل --color-gray-100 لتبقى الرموز ذات معنى عند تغيّر اللوحات. استفد من cascade layers للتحكم في specificity دون حيل !important.
ضع في الاعتبار هذه الإرشادات:
- عرّف رموز ألوان دلالية في
@themeوارجع إليها في المكوّنات، لا قيم hex خام. - استخدم
@layerلتنظيم أنماط مكوّنات مخصصة إلى جانب utilities. - فعّل globs اكتشاف المحتوى لمسح كل ملفات القوالب، بما فيها packages monorepo.
- قِس حجم مخرجات CSS في CI لاكتشاف انتفاخ utilities عرضي من مسارات محتوى واسعة.
- وثّق اتفاقيات تسمية الرموز ليتوسع الفريق design system باتساق.
Tailwind CSS v4 أكثر من تحديث incremental — إنه تحول جذري نحو أدوات CSS-native تحترم المنصة. محرك Oxide وتكوين @theme ومجموعة utilities الموسّعة يجعلونه أقوى إصدار Tailwind للفرق التي تبني design systems على نطاق واسع.