العربية

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

تطبيق الوضع الداكن: دليل شامل باستخدام CSS وJavaScript

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

لماذا يجب تطبيق الوضع الداكن؟

هناك عدة أسباب مقنعة للنظر في تطبيق الوضع الداكن:

طرق تطبيق الوضع الداكن

هناك عدة طرق لتطبيق الوضع الداكن، ولكل منها مزاياها وعيوبها. سنستكشف الطرق الأكثر شيوعًا:

1. تطبيق الوضع الداكن باستخدام استعلامات الوسائط في CSS

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

مثال الكود

أضف CSS التالي إلى ورقة الأنماط الخاصة بك:

/* السمة الافتراضية (الفاتحة) */
body {
  background-color: #fff;
  color: #000;
}

/* السمة الداكنة */
@media (prefers-color-scheme: dark) {
  body {
    background-color: #222;
    color: #fff;
  }
  /* عدّل العناصر الأخرى حسب الحاجة */
  h1, h2, h3 {
    color: #ddd;
  }
  a {
    color: #8ab4f8;
  }
}

الشرح:

المزايا

العيوب

2. تطبيق الوضع الداكن باستخدام مفتاح تبديل JavaScript

يوفر استخدام مفتاح تبديل JavaScript للمستخدمين مفتاحًا يدويًا للتحكم في سمة الموقع. وهذا يمنح المستخدمين مزيدًا من التحكم ويسمح لهم بتجاوز تفضيلات نظامهم. يعتبر هذا النهج حاسمًا لتلبية احتياجات المستخدمين عبر مختلف الأجهزة والمنصات التي قد لا تدعم أو تكشف باستمرار عن إعدادات الوضع الداكن على مستوى النظام.

هيكل HTML

أولاً، أضف عنصر تبديل إلى ملف HTML الخاص بك:

<label class="switch">
  <input type="checkbox" id="darkModeToggle">
  <span class="slider round"></span>
</label>

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

تنسيق CSS (اختياري)

يمكنك تنسيق مفتاح التبديل باستخدام CSS. إليك مثال:

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* منزلقات دائرية */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

كود JavaScript

الآن، أضف كود JavaScript التالي للتعامل مع وظيفة التبديل:

const darkModeToggle = document.getElementById('darkModeToggle');
const body = document.body;

// دالة لتبديل الوضع الداكن
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // تخزين تفضيلات المستخدم في localStorage
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// التحقق من localStorage بحثًا عن تفضيلات محفوظة
if (localStorage.getItem('darkMode') === 'enabled') {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
}

// إضافة مستمع حدث إلى مفتاح التبديل
darkModeToggle.addEventListener('change', toggleDarkMode);

الشرح:

تنسيق CSS للوضع الداكن (باستخدام فئة)

حدّث ملف CSS الخاص بك لاستخدام فئة dark-mode لتطبيق أنماط السمة الداكنة:

/* السمة الافتراضية (الفاتحة) */
body {
  background-color: #fff;
  color: #000;
}

/* السمة الداكنة */
body.dark-mode {
  background-color: #222;
  color: #fff;
}

body.dark-mode h1, body.dark-mode h2, body.dark-mode h3 {
  color: #ddd;
}

body.dark-mode a {
  color: #8ab4f8;
}

المزايا

العيوب

3. الجمع بين استعلامات الوسائط وJavaScript

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

مثال الكود

استخدم نفس HTML و CSS من مثال مفتاح تبديل JavaScript. عدّل كود JavaScript للتحقق من تفضيلات النظام:

const darkModeToggle = document.getElementById('darkModeToggle');
const body = document.body;

// دالة لتبديل الوضع الداكن
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // تخزين تفضيلات المستخدم في localStorage
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// التحقق من localStorage بحثًا عن تفضيلات محفوظة، ثم تفضيلات النظام
if (localStorage.getItem('darkMode') === 'enabled') {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
} else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
}

// إضافة مستمع حدث إلى مفتاح التبديل
darkModeToggle.addEventListener('change', toggleDarkMode);

الشرح:

المزايا

العيوب

اعتبارات إمكانية الوصول

عند تطبيق الوضع الداكن، من الضروري مراعاة إمكانية الوصول لضمان بقاء موقعك قابلاً للاستخدام لجميع المستخدمين. تذكر أن مجرد عكس الألوان لا يضمن تلقائيًا إمكانية الوصول. إليك بعض الاعتبارات الرئيسية:

أفضل الممارسات لتطبيق الوضع الداكن

فيما يلي بعض أفضل الممارسات التي يجب اتباعها عند تطبيق الوضع الداكن على موقعك:

مثال: استخدام متغيرات CSS لتنسيق السمات

تسهّل متغيرات CSS التبديل بين سمات الوضع الفاتح والداكن. حدد المتغيرات في الفئة الزائفة :root:

:root {
  --bg-color: #fff;
  --text-color: #000;
  --link-color: #007bff;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

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

body.dark-mode {
  --bg-color: #222;
  --text-color: #fff;
  --link-color: #8ab4f8;
}

الآن، عند إضافة فئة dark-mode إلى العنصر body، يتم تحديث متغيرات CSS، ويتم تطبيق الأنماط تلقائيًا.

الخاتمة

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

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

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