العربية

استكشف قوة استعلامات الوسائط والخصائص المخصصة في CSS لإنشاء مظاهر فاتحة وداكنة تلقائية تتكيف مع تفضيلات المستخدم، مما يعزز إمكانية الوصول والجاذبية البصرية لجمهور عالمي.

وظيفة Light-Dark في CSS: التكيف التلقائي للمظهر لشبكة ويب عالمية

في عالم اليوم المتصل عالميًا، تحتاج مواقع الويب إلى أن تكون سهلة الوصول وجذابة بصريًا للمستخدمين من مختلف الخلفيات والتفضيلات. إحدى أكثر الطرق فعالية لتحقيق ذلك هي من خلال التكيف التلقائي للمظهر، وتحديدًا عبر تقديم مظاهر فاتحة وداكنة تتكيف بناءً على إعدادات نظام المستخدم. سيرشدك هذا المقال إلى كيفية تنفيذ هذه الوظيفة باستخدام استعلامات الوسائط والخصائص المخصصة في CSS، مما يضمن تجربة تصفح سلسة ومريحة لجمهورك الدولي.

لماذا يجب تنفيذ المظاهر الفاتحة والداكنة التلقائية؟

هناك عدة أسباب قوية لدمج التكيف التلقائي للمظهر في مشاريع الويب الخاصة بك:

كيفية تنفيذ التكيف التلقائي للمظهر باستخدام CSS

يكمن جوهر التكيف التلقائي للمظهر في استعلام الوسائط prefers-color-scheme. يسمح لك استعلام وسائط CSS هذا باكتشاف نظام الألوان المفضل لدى المستخدم (فاتح أو داكن) وتطبيق الأنماط المقابلة.

الخطوة 1: تحديد الخصائص المخصصة (متغيرات CSS)

ابدأ بتحديد الخصائص المخصصة (متغيرات CSS) لتخزين قيم الألوان للمظهرين الفاتح والداكن. هذا يسهل التبديل بين المظاهر بمجرد تحديث قيم المتغيرات.


:root {
  --background-color: #ffffff; /* خلفية المظهر الفاتح */
  --text-color: #000000; /* نص المظهر الفاتح */
  --link-color: #007bff; /* رابط المظهر الفاتح */
  --button-background-color: #f0f0f0;
  --button-text-color: #000;
}

@media (prefers-color-scheme: dark) {
  :root {
    --background-color: #121212; /* خلفية المظهر الداكن */
    --text-color: #ffffff; /* نص المظهر الداكن */
    --link-color: #66b3ff; /* رابط المظهر الداكن */
    --button-background-color: #333;
    --button-text-color: #fff;
  }
}

في هذا المثال، نحدد متغيرات للون الخلفية، لون النص، لون الرابط، وألوان الأزرار. يطبق المحدد :root هذه المتغيرات على المستند بأكمله. ثم يقوم استعلام الوسائط @media (prefers-color-scheme: dark) بتجاوز هذه المتغيرات بقيم المظهر الداكن عندما يضبط المستخدم نظامه على الوضع الداكن.

الخطوة 2: تطبيق الخصائص المخصصة على أنماطك

بعد ذلك، طبق هذه الخصائص المخصصة على أنماط CSS الخاصة بك للتحكم في مظهر عناصر موقعك.


body {
  background-color: var(--background-color);
  color: var(--text-color);
  transition: background-color 0.3s, color 0.3s; /* انتقال سلس */
}

a {
  color: var(--link-color);
}

button {
  background-color: var(--button-background-color);
  color: var(--button-text-color);
  border: none;
  padding: 10px 20px;
  cursor: pointer;
}

هنا، نستخدم الدالة var() للوصول إلى قيم خصائصنا المخصصة. لقد أضفنا أيضًا خاصية transition إلى عنصر body لإنشاء انتقال سلس بين المظاهر.

الخطوة 3: الاختبار والتحسين

اختبر تنفيذك بدقة عبر مختلف المتصفحات وأنظمة التشغيل. المتصفحات الحديثة مثل Chrome و Firefox و Safari و Edge تدعم بشكل كامل استعلام الوسائط prefers-color-scheme. يمكنك التبديل بين الوضعين الفاتح والداكن في إعدادات نظام التشغيل الخاص بك لرؤية التغييرات تنعكس على موقعك.

تقنيات واعتبارات متقدمة

توفير مفتاح تبديل يدوي للمظهر

بينما يعد التكيف التلقائي للمظهر نقطة انطلاق رائعة، قد يفضل بعض المستخدمين تجاوز إعدادات نظامهم يدويًا. يمكنك توفير مفتاح تبديل يدوي للمظهر باستخدام JavaScript والتخزين المحلي (local storage).

HTML:


<button id="theme-toggle">Toggle Theme</button>

JavaScript:


const themeToggle = document.getElementById('theme-toggle');
const body = document.body;

let currentTheme = localStorage.getItem('theme') || 'auto'; // الوضع الافتراضي هو التلقائي

function setTheme(theme) {
  if (theme === 'dark') {
    body.classList.add('dark-theme');
    body.classList.remove('light-theme');
  } else if (theme === 'light') {
    body.classList.add('light-theme');
    body.classList.remove('dark-theme');
  } else {
    body.classList.remove('light-theme', 'dark-theme');
  }
  localStorage.setItem('theme', theme);
  currentTheme = theme;
}

// تطبيق المظهر الأولي عند تحميل الصفحة
if (currentTheme === 'dark') {
  setTheme('dark');
} else if (currentTheme === 'light') {
  setTheme('light');
} else {
  // إذا تم التعيين على تلقائي، اسمح لـ prefers-color-scheme بالتقرير
}


themeToggle.addEventListener('click', () => {
    if (currentTheme === 'auto'){
        setTheme('light');
    } else if (currentTheme === 'light') {
        setTheme('dark');
    } else {
        setTheme('auto');
    }
});

CSS: أضف CSS التالي مع CSS السابق. لاحظ التجاوز اليدوي:


body.light-theme {
  --background-color: #ffffff; /* خلفية المظهر الفاتح */
  --text-color: #000000; /* نص المظهر الفاتح */
  --link-color: #007bff; /* رابط المظهر الفاتح */
  --button-background-color: #f0f0f0;
  --button-text-color: #000;
}

body.dark-theme {
  --background-color: #121212; /* خلفية المظهر الداكن */
  --text-color: #ffffff; /* نص المظهر الداكن */
  --link-color: #66b3ff; /* رابط المظهر الداكن */
  --button-background-color: #333;
  --button-text-color: #fff;
}

يضيف هذا المقتطف البرمجي زرًا يسمح للمستخدمين بالتبديل بين المظاهر الفاتحة والداكنة والتلقائية. يتم تخزين المظهر المختار في التخزين المحلي بحيث يستمر عبر عمليات تحميل الصفحة.

التعامل مع الصور وملفات SVG

قد لا تبدو بعض الصور وملفات SVG جيدة في كلا المظهرين الفاتح والداكن. يمكنك استخدام استعلامات وسائط CSS لعرض إصدارات مختلفة من هذه الأصول بشكل شرطي.


img.light-mode {
  display: block;
}

img.dark-mode {
  display: none;
}

@media (prefers-color-scheme: dark) {
  img.light-mode {
    display: none;
  }

  img.dark-mode {
    display: block;
  }
}

يعرض هذا المقتطف البرمجي صورة واحدة (ذات الفئة light-mode) في الوضع الفاتح وصورة مختلفة (ذات الفئة dark-mode) في الوضع الداكن.

اعتبارات لوحة الألوان للجمهور الدولي

عند اختيار لوحات الألوان لمظهرك الفاتح والداكن، كن على دراية بالارتباطات الثقافية واعتبارات إمكانية الوصول. إليك بعض الإرشادات العامة:

اعتبارات الأداء

على الرغم من أن تنفيذ التكيف التلقائي للمظهر أمر بسيط نسبيًا، فمن المهم مراعاة التأثير المحتمل على الأداء. تجنب استخدام محددات CSS أو الرسوم المتحركة المعقدة للغاية التي يمكن أن تبطئ عملية العرض. أيضًا، تأكد من تحديد خصائصك المخصصة بكفاءة لتقليل العبء الإضافي لعمليات البحث عن المتغيرات.

فيما يلي بعض أفضل الممارسات لتحسين الأداء:

أفضل ممارسات إمكانية الوصول

تأكد من أن مظاهرك الفاتحة والداكنة تفي بإرشادات إمكانية الوصول، مثل WCAG (إرشادات الوصول إلى محتوى الويب). يشمل ذلك توفير تباين ألوان كافٍ، واستخدام HTML الدلالي، والتأكد من أن جميع العناصر التفاعلية يمكن الوصول إليها عبر لوحة المفاتيح.

إليك بعض أفضل ممارسات إمكانية الوصول المحددة التي يجب اتباعها:

أمثلة عبر مناطق مختلفة

خذ بعين الاعتبار هذه الأمثلة على كيفية تصميم المظاهر الفاتحة والداكنة لتناسب الجماهير العالمية المتنوعة:

الخاتمة

يعد تنفيذ المظاهر الفاتحة والداكنة التلقائية خطوة حاسمة نحو إنشاء تجربة ويب أكثر سهولة في الوصول وأكثر ملاءمة للمستخدمين لجمهور عالمي. من خلال الاستفادة من استعلامات وسائط CSS والخصائص المخصصة، يمكنك بسهولة تكييف مظهر موقعك ليتناسب مع تفضيلات المستخدم، وتقليل إجهاد العين، وتحسين إمكانية الوصول للمستخدمين الذين يعانون من إعاقات بصرية. تذكر أن تأخذ في الاعتبار الارتباطات الثقافية وإرشادات إمكانية الوصول واعتبارات الأداء لضمان تجربة تصفح سلسة وشاملة للجميع.

من خلال تبني هذه التقنيات، فإنك تظهر التزامًا بمبادئ تصميم الويب الحديثة وتلبي الاحتياجات المتنوعة لجمهورك الدولي، مما يجعل موقعك مساحة ترحيبية ومريحة للجميع.