متغيرات CSS
المتغيرات CSS (الخصائص المخصصة) تتيح لك تعريف قيم قابلة لإعادة استخدام في CSS، مشابهة للمتغيرات في لغات البرمجة. استخدام متغيرات CSS يمكن أن يُقلل بشكل كبير من الكود المتكرر ويجعل من السهل إدارة رموز التصميم مثل ألوان المواضيع والمسافات.
تعريف المتغيرات
متغيرات CSS تستخدم أسماء خصائص مخصصة (تبدأ بـ--):
مثال
<style>
/* تعريف متغيرات عامة في :root */
:root {
--primary-color: #3498db;
--secondary-color: #2ecc71;
--text-color: #333;
--border-radius: 8px;
--spacing: 16px;
--font-size: 16px;
}
</style>
استخدام المتغيرات
استشهد بالمتغيرات باستخدام دالة var():
مثال
<style>
.button {
background-color: var(--primary-color);
color: white;
border-radius: var(--border-radius);
padding: var(--spacing);
font-size: var(--font-size);
}
.card {
border: 1px solid var(--primary-color);
border-radius: var(--border-radius);
padding: var(--spacing);
}
</style>
<button class="button">زر</button>
<div class="card">بطاقة</div>
نطاق المتغيرات
نطاق متغيرات CSS يُحدد بمكان تعريفها:
متغيرات عامة — مُعرفة في :root:
مثال
<style>
:root {
--color: blue;
}
</style>
<div class="box-demo">صندوق عرض يوضح تأثير الخاصية الحالية</div>
متغيرات محلية — مُعرفة في مُحدد محدد، ت生效 فقط في ذلك المُحدد وأبنائه:
مثال
<style>
.card {
--card-bg: #f5f5f5;
--card-padding: 20px;
}
.card-header {
background: var(--card-bg);
padding: var(--card-padding);
}
</style>
<div class="card">بطاقة</div>
<div class="card-header">ترويسة البطاقة</div>
توريث المتغيرات
متغيرات CSS تتوارث مثل خصائص CSS العادية:
مثال
<style>
:root {
--theme-color: #333;
}
/* تجاوز المتغير في حاوية */
.dark-theme {
--theme-color: #eee;
}
.dark-theme .content {
color: var(--theme-color); /* #eee */
}
.content {
color: var(--theme-color); /* #333 */
}
</style>
<div class="dark-theme">معاينة الوضع الداكن</div>
<div class="content">منطقة المحتوى الرئيسية</div>
قيم احتياطية لـ var()
var() يمكنها تعيين معلمة ثانية كقيمة احتياطية — تُستخدم عندما يكون المتغير غير مُعرَّف:
مثال
<style>
.element {
color: var(--undefined-color, red); /* يستخدم الأحمر لأن --undefined-color غير مُعرَّف */
background: var(--bg, var(--fallback, #eee)); /* يمكن تداخل القيم الاحتياطية */
}
</style>
<div class="element">هذا عنصر مثال</div>
تعديل المتغيرات بـ JavaScript
data-theme على <html>، واستخدم المتغيرات في CSS للإشارة إلى ألوان مختلفة، وسطر واحد من كود JS يمكنه تبديل مخطط ألوان الموقع بأكمله.
ميزة رئيسية لمتغيرات CSS هي أنه يمكن تعديلها ديناميكياً عبر JavaScript:
مثال
// الحصول
const color = getComputedStyle(document.documentElement)
.getPropertyValue('--primary-color');
// تعيين
document.documentElement.style.setProperty('--primary-color', '#e74c3c');
تنفيذ تبديل السمة
متغيرات CSS هي أفضل طريقة لتنفيذ تبديل السمة مثل "الوضع الداكن":
مثال
<style>
/* سمة فاتحة (افتراضي) */
:root {
--bg-color: #ffffff;
--text-color: #333333;
--card-bg: #f5f5f5;
--border-color: #dddddd;
}
/* سمة داكنة */
[data-theme="dark"] {
--bg-color: #1a1a2e;
--text-color: #eeeeee;
--card-bg: #16213e;
--border-color: #0f3460;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
</style>
ثم قم بتبديل السمات عبر JavaScript:
document.documentElement.setAttribute('data-theme', 'dark');
// أو
document.documentElement.setAttribute('data-theme', 'light');
مزايا متغيرات CSS
- تقليل الكود المتكرر: متغير واحد يُستخدم في أماكن كثيرة، غيّره مرة واحدة لتحديث الكل
- قابل للتعديل في وقت التشغيل: يمكن تغييره ديناميكياً عبر JS لتبديل السمة
- التحكم في النطاق: يمكن تجاوز قيم المتغيرات في حاويات محددة
- دلالي:
--primary-colorأسهل في الفهم من#3498db
الاختلافات عن المعالجات المسبقة
متغيرات CSS (الخصائص المخصصة) تختلف عن متغيرات Sass/Less:
| الميزة | متغيرات CSS | متغيرات Sass |
|---|---|---|
| التعديل في وقت التشغيل | ✅ نعم | ❌ ثابت بعد التجميع |
| النطاق | ✅ توريث CSS | ❌ قيم ثابتة بعد التجميع |
| المتصفح | دعم المتصفحات الحديثة | لا حاجة لدعم المتصفح (مُجمع مسبقاً) |
| تفاعل JS | ✅ قابل للقراءة/الكتابة | ❌ غير قابل للوصول |
❓ أسئلة شائعة
📖 ملخص
- متغيرات CSS هي أدوات مهمة جداً في تطوير CSS الحديث
- تُحدد بـ
--اسم-المتغير، وتُستخدم بـvar()، تجعل كود النمط أنظف وأسهل في الصيانة - أكبر قيمة: غيّر قيمة واحدة، وجميع الأماكن التي تشير إلى ذلك المتغير تتحدث تلقائياً
- تبديل السمة، مخططات ألوان متجاوبة، لغة تصميم موحدة — متغيرات CSS مفيدة بشكل خاص في المشاريع الكبيرة
📝 تمارين
- أنشئ صفحة باستخدام متغيرات CSS لتعريف 5 متغيرات على الأقل لألوان المواضيع وألوان النص والمسافات وغيرها، واستخدمها في جميع أنحاء الصفحة.
- بناءً على الصفحة أعلاه، نفّذ "تبديل لون السمة بنقرة واحدة" — عدّل متغير اللون الأساسي في
:rootوراقب التغييرات في جميع العناصر ذات الصلة. - استخدم متغيرات CSS لتنفيذ تبديل بسيط بين "الوضع النهاري/الليلي" (بتبديل الفئة أو سمة data-theme عبر JS).
- تجاوز محلياً قيم متغيرات CSS في حاوية (مثل مكوّن البطاقة) وراقب تغييرات النمط في العناصر الابنة.



