“يا زلمة، عيوني زغللت!”… قصة بدأت في منتصف الليل
قبل كم سنة، كنت سهران في مكتبي الصغير في رام الله، شغال على تطبيق شخصي كنت متحمس له كثير. الساعة كانت حوالي 2 بعد منتصف الليل، والقهوة هي الصديق الوحيد اللي مصحصح معي. كنت قد طبقت الوضع الداكن (Dark Mode) في التطبيق قبل يومين، وكنت فخور جداً بالنتيجة… على الأقل في البداية. الخلفية كانت أسود فاحم (#000000) والنص أبيض ناصع، والأزرار بألوان زاهية. “شغل فنان!”، قلت لنفسي بابتسامة.
بعد حوالي ثلاث ساعات من التحديق في الشاشة، حسيت بشي غريب. عيوني بلشت توجعني، والنصوص صارت كأنها “بترجف” أو حواليها هالة ضبابية خفيفة. كل ما أركز أكثر، الوضع يسوء. وقتها، مسكت راسي وقلت: “شو القصة؟ مش المفروض الوضع الداكن يريح العين؟”.
هذه اللحظة كانت نقطة تحول بالنسبة لي. أدركت أن الوضع الداكن مش مجرد قلب للألوان من فاتح لغامق. هو علم وفن، وإذا ما انعمل صح، ممكن يكون أسوأ من الوضع الفاتح، خصوصاً للأشخاص اللي عندهم مشاكل في الرؤية. من يومها، صرت أتعمق في موضوع إمكانية الوصول في الوضع الداكن (Dark Mode Accessibility)، واليوم حابب أشارككم خلاصة تجربتي وخبرتي.
لماذا الوضع الداكن ليس دائماً نعمة؟
الكل بحب الوضع الداكن، شكله عصري وبحكي لك إنه بوفر بطارية (على شاشات OLED)، ويُفترض إنه مريح للعين في الليل. لكن الحقيقة أعقد من هيك. إذا تم تنفيذه بشكل خاطئ، يمكن أن يسبب مشاكل حقيقية.
فخ الأسود الخالص (#000000)
أول خطأ بوقع فيه معظم المطورين هو استخدام اللون الأسود النقي (#000000) كخلفية. قد يبدو هذا منطقياً، لكنه يخلق مشكلة كبيرة: التباين المفرط (Extreme Contrast). عندما تضع نصاً أبيض ناصعاً (#FFFFFF) على خلفية سوداء نقية، فإن التباين يكون أعلى ما يمكن. هذا التباين الشديد يجبر بؤبؤ العين على العمل بجهد أكبر للتركيز، مما يسبب ظاهرة تسمى “Halation” أو “الهالة”، حيث تبدو الحروف وكأنها تتسرب إلى الخلفية السوداء، مما يجعل القراءة مجهدة ومتعبة بمرور الوقت. هذا هو بالضبط ما حدث معي في تلك الليلة.
“زغللة” الألوان المشبعة
المشكلة الثانية هي استخدام ألوان زاهية ومشبعة (Saturated Colors) للعناصر التفاعلية مثل الأزرار والروابط. على خلفية فاتحة، قد تبدو هذه الألوان جميلة، لكن على خلفية داكنة، فإنها “تهتز” أو “تزغلل العين”. تبدو كأنها تقفز من الشاشة وتتنافس مع النص على جذب انتباهك، مما يشتت التركيز ويسبب إزعاجاً بصرياً.
تحدي خاص لأصحاب الاستجماتيزم (اللابؤرية)
عدد كبير من الناس يعانون من الاستجماتيزم (Astigmatism)، وهي حالة شائعة في العين تجعل القرنية غير منتظمة الشكل. بالنسبة لهم، قراءة نص فاتح على خلفية داكنة يمكن أن تكون أصعب. الضوء الأبيض يتشتت داخل العين بشكل أكبر، مما يؤدي إلى رؤية ضبابية أو مشوهة للنصوص. هذا لا يعني أن الوضع الداكن سيء لهم بالمطلق، لكنه يعني أن التصميم السيئ سيفاقم من معاناتهم.
طريقة أبو عمر: دليلك العملي لوضع داكن “مرتب” ومريح
طيب، كيف نحل هاي المشاكل؟ الموضوع أبسط مما تتخيل. الأمر يتطلب فقط بعض الوعي والاهتمام بالتفاصيل. هذه هي الخطوات اللي بتبعها في كل مشاريعي.
الخطوة الأولى: اهجر الأسود النقي، ورحّب بالرمادي الداكن
بدلاً من استخدام #000000، استخدم درجة من درجات الرمادي الداكن جداً. اللون المفضل عندي واللي بتوصي فيه Google في نظام Material Design هو #121212. هذا اللون يقلل من التباين المفرط بشكل كافٍ لمنع إجهاد العين، لكنه لا يزال داكناً بما يكفي ليعطي إحساس الوضع الداكن الجميل.
/* مثال بسيط في CSS */
body.dark-mode {
background-color: #121212; /* مش أسود خالص */
color: rgba(255, 255, 255, 0.87); /* مش أبيض ناصع */
}
لاحظ أن لون النص ليس أبيض ناصعاً أيضاً. استخدام لون أبيض مع شفافية بسيطة (مثل 87%) يجعله أقل حدة وأكثر راحة للعين.
الخطوة الثانية: احترم نسبة التباين (Contrast Ratio)
إمكانية الوصول ليست خياراً. معايير WCAG (Web Content Accessibility Guidelines) واضحة:
- للنصوص العادية: يجب أن تكون نسبة التباين بين النص والخلفية 4.5:1 على الأقل.
- للنصوص الكبيرة (18pt أو 14pt غامق): النسبة المقبولة هي 3:1 على الأقل.
لا داعي لحسابها يدوياً. استخدم أدوات رائعة ومجانية مثل WebAIM Contrast Checker أو إضافات لبرامج التصميم مثل Stark. قبل اعتماد أي لون، ضعه في الأداة وتأكد من أنه يجتاز الاختبار. هذه خطوة بسيطة تضمن أن تطبيقك قابل للاستخدام من قبل الجميع تقريباً.
الخطوة الثالثة: “هدّي” ألوانك وخفف تشبعها
تلك الألوان الزاهية التي تسبب “الزغللة”؟ الحل بسيط: قلل من تشبعها (Desaturate). بدلاً من استخدام اللون الأزرق الفاقع #0000FF، استخدم نسخة أهدأ وأفتح قليلاً منه. القاعدة العامة التي أتبعها هي اختيار درجات لونية من عائلة 200-400 في معظم أنظمة الألوان (مثل Material Design Color Palette). هذه الألوان تكون أقل تشبعاً وأكثر راحة على الخلفيات الداكنة.
نصيحة من أبو عمر: عند تصميم لوحة الألوان للوضع الداكن، لا تختر الألوان الأساسية الزاهية. بدلاً من ذلك، اختر نسخة “باستيل” أو مخففة من كل لون. هذا لا يقلل فقط من إجهاد العين، بل يعطي تصميمك مظهراً أكثر احترافية وأناقة.
الخطوة الرابعة: المستخدم هو الملك، أعطه خيار الإلغاء
مهما كان تصميمك للوضع الداكن رائعاً، سيبقى هناك مستخدمون يفضلون الوضع الفاتح، أو يحتاجونه لأسباب تتعلق بالرؤية. الحل بسيط ومهم جداً: دائماً وفّر خياراً للمستخدم للتبديل بين الوضع الفاتح والداكن بسهولة. لا تفرض الوضع الداكن على أحد بناءً على إعدادات النظام فقط. أعطِ المستخدم التحكم الكامل.
الخطوة الخامسة: استخدم الارتفاع (Elevation) بدلاً من الألوان للفصل
في الوضع الداكن، يصعب استخدام الألوان لإنشاء حدود وفواصل بين العناصر. بدلاً من ذلك، استلهم من العالم الحقيقي. كيف نميز الأشياء فوق بعضها البعض؟ من خلال الظل والضوء.
في واجهة المستخدم، نسمي هذا “الارتفاع” (Elevation). كلما كان العنصر “أعلى” (أقرب للمستخدم)، كان سطحه أفتح قليلاً. يمكنك تطبيق ذلك باستخدام طبقات متعددة من اللون الرمادي الداكن.
/* مثال على مستويات الارتفاع */
.dark-mode {
--surface-level-1: #121212; /* الخلفية الأساسية */
--surface-level-2: #1E1E1E; /* للبطاقات مثلاً */
--surface-level-3: #2C2C2C; /* للقوائم المنسدلة */
}
.card {
background-color: var(--surface-level-2);
}
هذه التقنية تخلق إحساساً بالعمق وتجعل الواجهة منظمة وسهلة الفهم دون الحاجة إلى حدود ملونة قد تفشل في اختبار التباين.
أمثلة من عمالقة التكنولوجيا
لا تحتاج أن تصدق كلامي فقط، انظر إلى أفضل التطبيقات في العالم:
- Discord: يستخدم خلفية رمادية داكنة (
#36393F)، وهي مريحة جداً لجلسات الاستخدام الطويلة. - GitHub: بعد إطلاق الوضع الداكن الأولي، استمعوا لملاحظات المستخدمين حول إجهاد العين وقاموا بتعديل الألوان لتكون أكثر راحة.
- Apple: الوضع الداكن في أنظمة iOS و macOS هو درس في التصميم الدقيق. يستخدمون مستويات متعددة من الرمادي والشفافية لخلق تجربة متناغمة وواضحة.
الخلاصة: الوضع الداكن… فن ومسؤولية 💡
تصميم الوضع الداكن ليس مجرد صيحة عصرية، بل هو مسؤولية تقع على عاتقنا كمصممين ومطورين لتقديم تجربة شاملة ومريحة للجميع. تذكر دائماً هذه النقاط الأساسية:
- ابتعد عن الأسود النقي: استخدم الرمادي الداكن جداً (مثل
#121212). - افحص التباين: استهدف نسبة 4.5:1 على الأقل للنصوص العادية.
- خفف ألوانك: تجنب الألوان المشبعة والزاهية.
- أعطِ الخيار للمستخدم: اسمح بالتبديل السهل بين الأوضاع.
- استخدم الارتفاع: ابنِ واجهتك بطبقات من الظلال بدلاً من الحدود الملونة.
في النهاية، التصميم الجيد هو الذي لا تلاحظه، لأنه ببساطة “يعمل” بسلاسة وراحة. لا تجعل المستخدمين يعانون في صمت كما عانيت أنا في تلك الليلة. اهتم بالتفاصيل، وستجد أن المستخدمين سيقدرون عملك أكثر. يلا، ورجونا شغلكم المرتب! 😉