Tailwind CSS v4 — كل ما تغيّر وكيف تهاجر
CSS3 دقيقة للقراءة

Tailwind CSS v4 — كل ما تغيّر وكيف تهاجر

استعراض شامل لأبرز التغييرات في Tailwind CSS الإصدار الرابع: محرك Oxide الجديد، الإعداد عبر CSS، وAPI الـ theme الجديد.

ما الجديد في Tailwind v4؟

Tailwind CSS v4 إعادة كتابة كاملة من الأساس. المحرك الجديد Oxide (مكتوب بـ Rust) أسرع بـ 10x في البناء، وأسرع بـ 100x في البناء الإضافي.

لكن الأهم من السرعة: طريقة الإعداد تغيّرت كليًا.


الإعداد: CSS-first بدلًا من JS

v3 (القديم)

JavaScript
// tailwind.config.js
module.exports = {
  content: ["./src/**/*.{ts,tsx}"],
  darkMode: "class",
  theme: {
    extend: {
      colors: {
        brand: "#6366f1",
      },
      fontFamily: {
        sans: ["Cairo", "sans-serif"],
      },
    },
  },
};

v4 (الجديد)

CSS
/* globals.css */
@import "tailwindcss";
 
@theme {
  --font-sans: "Cairo", sans-serif;
  --color-brand: #6366f1;
  --color-brand-hover: #4f46e5;
  --radius-card: 1rem;
}

لا يوجد ملف tailwind.config.js بعد الآن. كل شيء في CSS.


Dark Mode

CSS
/* v3: ضُبط في tailwind.config.js */
 
/* v4: ضعها في CSS */
@variant dark (&:is(.dark, .dark *));

المتغيرات المدمجة في CSS

كل قيم الـ theme أصبحت CSS custom properties تلقائيًا:

CSS
.card {
  /* بدلًا من Tailwind class يمكن استخدامها مباشرة */
  border-radius: var(--radius-lg);
  color: var(--color-gray-900);
  background: var(--color-white);
}

Variants الجديدة

HTML
<!-- v4: تستطيع استخدام arbitrary variants مباشرة -->
<div class="[&:nth-child(3)]:bg-blue-100">...</div>
 
<!-- نمط الـ group و peer لم يتغيّر -->
<div class="group hover:bg-gray-100">
  <span class="group-hover:text-blue-600">نص</span>
</div>

جدول التغييرات الرئيسية

الميزةv3v4
ملف الإعدادtailwind.config.jsCSS فقط
Dark modedarkMode: 'class' في config@variant dark في CSS
الـ themetheme.extend.colors@theme { --color-* }
CSS Variablesيدويتلقائي من الـ theme
سرعة البناءسريعسريع جدًا (Rust)
@applyمدعوممدعوم (لكن يُنصح بتقليله)
JITافتراضيدائمًا

دليل الهجرة السريع

١. تثبيت الإصدار الجديد

Bash
npm install tailwindcss@next @tailwindcss/vite
# أو مع Next.js
npm install tailwindcss@next @tailwindcss/postcss

٢. تعديل postcss.config.js

JavaScript
// قبل
module.exports = { plugins: { tailwindcss: {}, autoprefixer: {} } };
 
// بعد
module.exports = { plugins: { "@tailwindcss/postcss": {} } };

٣. تحديث الـ CSS الرئيسي

CSS
/* قبل */
@tailwind base;
@tailwind components;
@tailwind utilities;
 
/* بعد */
@import "tailwindcss";

٤. نقل إعدادات الـ theme

CSS
/* انقل من tailwind.config.js إلى CSS */
@theme {
  --font-sans: "Cairo", sans-serif;
  --font-mono: "JetBrains Mono", monospace;
 
  --color-primary:   #6366f1;
  --color-primary-hover: #4f46e5;
}

بعض plugins القديمة مثل @tailwindcss/typography لها إصدار v4 منفصل. تأكد من تحديثها.

يوجد أداة هجرة رسمية: npx @tailwindcss/upgrade تحوّل معظم الإعدادات تلقائيًا.


الخلاصة

Tailwind v4 مُربك في البداية لمن اعتاد على ملف الإعداد، لكنه أسرع وأنظف على المدى البعيد. الـ CSS custom properties تجعل الـ theme متاحًا في كل مكان — في Tailwind classes، وفي CSS العادي، وحتى في JavaScript عبر getComputedStyle.