متغيرات CSS لتبديل السمات
عرّف لوحة ألوان كاملة باستخدام خصائص CSS المخصصة، وبدّل السمات عبر تبديل سمة بيانات
متغيرات CSS لتبديل السمات درس مجاني في React Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.
تعريف رموز الألوان على :root
تكون الخصائص المخصصة في CSS، أو المتغيرات، المعرّفة على :root متاحةً عالميًا في ورقة الأنماط بأكملها. عرّف لوحة ألوان كاملة مرة واحدة — للخلفيات وألوان النصوص والأسطح والحدود — ثم أشر إليها في كل مكان. يجعل هذا المصدر الموحد للحقيقة تبديل السمات أمرًا بسيطًا.
تجاوزات السمة الداكنة باستخدام data-theme
عند تعيين السمة data-theme="dark" على document.documentElement، يتجاوز محدد CSS مثل [data-theme='dark'] متغيرات الجذر بقيم داكنة. وتشير المكونات إلى var(--color-bg)، فتلتقط القيم الجديدة تلقائيًا دون أي تغييرات في التعليمات البرمجية.
المتغيرات الأساسية المطلوب تعريفها
عرّف على الأقل: --color-bg لخلفية الصفحة، و--color-text للنص الأساسي، و--color-primary للون العلامة التجارية، و--color-surface لخلفية البطاقة أو اللوحة، و--color-border للفواصل. تمنع مجموعة الرموز المتسقة ظهور قيم ألوان عشوائية داخل المكونات.
تطبيق المتغيرات في أنماط المكونات
في CSS الخاص بالمكوّن، أشر إلى المتغيرات مثل background: var(--color-bg) وcolor: var(--color-text). ويمكنك أيضًا توفير قيمة احتياطية: var(--color-bg, #ffffff). يحل المتصفح قيمة المتغير وقت الرسم، لذا تعمل فئة واحدة مع السمتين الفاتحة والداكنة.
انتقال سلس عند التبديل
أضف transition: background-color 200ms, color 200ms إلى المحدد :root. عند تغيّر السمة data-theme، ستنتقل جميع العناصر التي تستخدم متغيرات CSS إلى قيمها الجديدة في الوقت نفسه. يضفي ذلك مظهرًا متقنًا دون الحاجة إلى كتابة تعليمات تحريك في JS.
متغيرات CSS مقابل الأنماط المضمّنة التي يتحكم بها JS
تُعد إدارة السمة عبر متغيرات CSS أفضل من تعيين الأنماط المضمّنة من JavaScript. يتولى المتصفح جميع عمليات إعادة حساب الأنماط بشكل أصلي، ولا تحدث عمليات إعادة عرض إضافية في React لكل مكوّن فرعي يستخدم السمة، كما يتولى تسلسل CSS التوارث تلقائيًا. ولا يحتاج JS إلا إلى تبديل سمة واحدة على عنصر الجذر.
البديل على مستوى نظام التشغيل باستخدام prefers-color-scheme
يمكنك دمج متغيرات CSS مع الاستعلام @media (prefers-color-scheme: dark) باعتباره بديلًا يعتمد على CSS فقط. عرّف التجاوزات الداكنة داخل استعلام الوسائط بالإضافة إلى محدد data-theme أو بدلًا منه. يضمن ذلك عمل الوضع الداكن حتى قبل تشغيل JavaScript.
دمج data-theme مع البديل المعتمد على استعلام الوسائط
يضع الأسلوب الأكثر موثوقية الآليتين معًا: يوفّر استعلام @media الإعداد الافتراضي لنظام التشغيل، بينما تتيح سمة data-theme للمستخدم التجاوز عبر JavaScript. عند وجود السمة، تكون لها الأولوية بفضل درجة التحديد؛ وعند غيابها، يسري استعلام الوسائط.
صور الوضع الداكن
بالنسبة إلى الصور التي تبدو سيئة على الخلفيات الداكنة، استخدم عنصر HTML picture مع عنصر فرعي source media="(prefers-color-scheme: dark)". يختار المتصفح النسخة الداكنة تلقائيًا. وبالنسبة إلى أيقونات SVG في CSS، يمكنك استخدام filter: invert(1) كحل تقريبي سريع.
متغيرات السمة ذات النطاق المحدد
يمكن أيضًا حصر نطاق متغيرات CSS في مكونات فردية، وذلك بتعريفها على عنصر الجذر للمكوّن بدلًا من :root. يتيح ذلك تطبيق سمات خاصة بكل مكوّن، مثل شريط جانبي له رمز خلفية خاص يختلف عن خلفية الصفحة، مع استمرار تبديل الجميع بشكل صحيح عند استخدام مفتاح السمة العام.
تصحيح أخطاء متغيرات CSS في DevTools
يعرض Chrome DevTools القيم المحلولة لمتغيرات CSS في لوحة Styles. انقر على مرجع المتغير للانتقال إلى تعريفه. يسهّل ذلك التحقق من تطبيق الرمز الداكن أو الفاتح الصحيح على أي عنصر. ويمكنك أيضًا تعديل قيم المتغيرات مباشرةً في اللوحة.
الخصائص المخصصة في CSS للسمات
ما محدد CSS المستخدم لتعريف الخصائص المخصصة العامة في CSS التي تنطبق على المستند بأكمله؟
مراجعة الدرس: متغيرات CSS لتبديل السمات
توفر الخصائص المخصصة في CSS على :root نظامًا مركزيًا من الرموز للسمات. بدّل سمة data-theme على عنصر html لتبديل السمات فورًا. أضف انتقالات CSS لتحريك سلس، واستخدم استعلام الوسائط prefers-color-scheme كبديل يعتمد على CSS فقط، وتجنب تجاوزات الأنماط في JS لكل مكوّن.
الأسئلة الشائعة
هل درس «متغيرات CSS لتبديل السمات» مجاني؟
نعم — نص درس «متغيرات CSS لتبديل السمات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.
ماذا ستتعلم في «متغيرات CSS لتبديل السمات»؟
عرّف لوحة ألوان كاملة باستخدام خصائص CSS المخصصة، وبدّل السمات عبر تبديل سمة بيانات تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟
لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «متغيرات CSS لتبديل السمات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟
نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- اكتشاف مخطط ألوان النظام
- متغيرات CSS لتبديل السمات
- React Context لحالة السمة
- حفظ السمة ومنع الوميض