انتقل إلى محتوى الدرس
الدرس 54
دورة بوتستراب 5

أوضاع الألوان والوضع الداكن في بوتستراب 5Bootstrap 5 Color Modes and Dark Theme

أتقن نظام أوضاع الألوان والوضع الداكن الأصيل في بوتستراب 5.3 عبر سمة data-bs-theme الشاملة أو الموضعية، وكلاسات الأسطح التكيفية، ومبدّل الثيم بجافاسكريبت والثيمات المخصصة.
أقسام الدرس
5
الأمثلة
4
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
1
محتوى الدرس
في هذا الدرس 5تصفّح المواضيع

في الإصدارات السابقة لبوتستراب كان بناء وضع داكن حقيقي يتطلب تحميل ملف تنسيقات ثانٍ بالكامل أو مضاعفة مئات الكلاسات يدوياً مثل navbar-dark bg-dark وtable-dark. غيّر الإصدار 5.3 هذه المعادلة جذرياً بإطلاق منظومة أوضاع الألوان الأصيلة المبنية بالكامل على متغيرات CSS الحية.

بدلاً من ربط المكونات بألوان سداسية جامدة، بات كل مكوّن في بوتستراب 5.3 يقرأ خلفيته ونصه وحدوده من متغيرات دلالية مثل --bs-body-bg و--bs-body-color و--bs-border-color؛ وبمجرد إضافة السمة data-bs-theme="dark" تتبدل قيم هذه المتغيرات دفعة واحدة فينقلب الموقع بأكمله بانسجام بصري فوري.

الشكل 1: مستويات تفعيل أوضاع الألوان والأسطح التكيفية في Bootstrap 5.3.
مخطط عمل أوضاع الألوان والوضع الداكن الشامل والموضعي في بوتستراب 5.3
مخطط عمل أوضاع الألوان والوضع الداكن الشامل والموضعي في بوتستراب 5.3

تعمل سمة data-bs-theme بمرونة هرمية عبر شجرة المستند في مستويين متكاملين:

  • التفعيل الشامل للصفحة كلها: ضع data-bs-theme="dark" على الوسم الجذري <html> لترث جميع الحاويات والبطاقات والجداول وحقول النماذج والنوافذ المنبثقة الوضع الداكن تلقائياً.
  • التفعيل الموضعي لمكوّن منفرد: أبقِ الصفحة في الوضع الفاتح الافتراضي، وضع data-bs-theme="dark" على بطاقة تسعير مميزة .card أو قائمة منسدلة .dropdown-menu أو تذييل سفلي فقط، بل ويمكنك وضع data-bs-theme="light" على عنصر داخلي لعكس الثيم محلياً!
HTML
<div class="row g-3">
  <div class="col-md-6">
    <div class="card p-3">Default Light Card</div>
  </div>
  <div class="col-md-6">
    <div class="card p-3" data-bs-theme="dark">
      <h3 class="h6">Scoped Dark Card</h3>
      <p class="text-body-secondary mb-0">Scoped dark</p>
    </div></div></div>

الخطأ الأكثر شيوعاً الذي يفسد الوضع الداكن هو استخدام كلاسات الألوان الفيزيائية الجامدة مثل .bg-white و.bg-light و.text-dark؛ فهذه الكلاسات تظل بيضاء ساطعة ونصها أسود قاتم حتى بعد تفعيل الوضع الداكن فتختفي الكلمات تماماً!

القاعدة الذهبية في بوتستراب 5.3 هي استبدالها دائماً بكلاسات الأسطح والنصوص التكيفية: استخدم .bg-body للسطح الرئيسي، و.bg-body-secondary و.bg-body-tertiary للبطاقات الفرعية والخلفيات الهادئة، و.text-body مع .text-body-secondary للنصوص، وادمج .bg-*-subtle مع .text-*-emphasis للتنبيهات الملونة.

HTML
<!-- Root html has data-bs-theme="dark" -->
<div class="p-3 rounded-3 bg-body-tertiary border">
  <h2 class="h5 text-body">Adaptive Dashboard Panel</h2>
  <p class="text-body-secondary mb-2">Readable subtitle</p>
  <span class="badge bg-success-subtle
    text-success-emphasis">Healthy Cluster</span>
</div>

لبناء مبدّل ثيم احترافي يحترم المستخدم، يجمع السكريبت القياسي ثلاث مهام متسلسلة: أولاً قراءة الاختيار المحفوظ في localStorage، وثانياً الرجوع التلقائي إلى تفضيل نظام التشغيل عبر window.matchMedia('(prefers-color-scheme: dark)') عند عدم وجود اختيار سابق أو عند اختيار الوضع التلقائي auto، وثالثاً تحديث السمة data-bs-theme على document.documentElement فور نقر الزر.

HTML
<button id="themeBtn" type="button"
  class="btn btn-outline-primary">
  Toggle Dark / Light Mode
</button>
<div class="card mt-3 p-3 bg-body-tertiary">
  <p class="mb-0 text-body-secondary">Live adaptive card</p>
</div>

لا تقتصر معمارية بوتستراب 5.3 على الوضعين الفاتح والداكن فحسب؛ إذ يمكنك ابتكار أوضاع لونية ثالثة ورابعة خاصة بهوية علامتك التجارية — كثيم القراءة الدافئ sepia أو ثيم الليل الأرجواني plum — بإنشاء محدد سمة مثل [data-bs-theme="plum"] وإعادة إسناد متغيرات السطح والنص والحدود بداخله فقط:

HTML
<style>
  [data-bs-theme="plum"] {
    --bs-body-color: #f5ebff;
    --bs-body-bg: #231336;
    --bs-border-color: #55347d;
  }
</style>
<div class="p-3 rounded-3 border bg-body text-body"
  data-bs-theme="plum">Custom Plum Mode Box</div>

يلخص الجدول التالي أدوات وقواعد إدارة أوضاع الألوان في بوتستراب 5.3:

الأداة أو المفهومالصيغة القياسيةالوظيفة المعمارية
الوضع الشامل للصفحة<html data-bs-theme="dark">تحويل جميع المكونات والأسطح إلى الوضع الداكن
النطاق الجزئي لمكوّن<div class="card" data-bs-theme="dark">عزل الثيم الداكن أو الفاتح على شجرة المكوّن فقط
كلاسات الأسطح التكيفية.bg-body, .bg-body-secondary, .bg-body-tertiaryخلفيات تنقلب تلقائياً بدلاً من .bg-white الجامد
النصوص والشارات التكيفية.text-body-secondary, .bg-*-subtleتباين نصي مضمون في الوضعين الفاتح والداكن
رصد تفضيل النظامmatchMedia('(prefers-color-scheme: dark)')مطابقة الوضع التلقائي مع إعداد نظام التشغيل
ثيم مخصص إضافي[data-bs-theme="plum"] { --bs-body-bg: ... }إنشاء أوضاع لونية جديدة عبر متغيرات CSS
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

ملخص الدرس: أتقنت في هذا الدرس منظومة أوضاع الألوان الأصيلة في بوتستراب 5.3، وتفعيل الوضع الداكن شاملاً أو موضعياً عبر data-bs-theme، واستبدال الألوان الثابتة بكلاسات الأسطح التكيفية، وبرمجة مبدّل الثيم الحي وإنشاء ثيمات مخصصة.

الخطوة التالية والدرس القادم

انتقل الآن إلى درس «متغيرات CSS في بوتستراب 5» للتعمق في متغيرات الجذر وقنوات RGB والمتغيرات المحلية للمكونات لتخصيص الواجهة بدون إعادة بناء Sass.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Color Mode Attribute سمة وضع الألوان
سمة data-bs-theme القياسية في بوتستراب 5.3 للتحكم بأوضاع الألوان على مستوى الصفحة أو المكوّن.
للمراجعة
02 Scoped Theme الثيم الموضعي المعزول
تطبيق سمة data-bs-theme على حاوية مكوّن محدد فقط دون التأثير على بقية عناصر الصفحة.
للمراجعة
03 Adaptive Surface Utility كلاس السطح التكيفي
كلاسات الخلفيات الدلالية التي تنعكس درجاتها تلقائياً بين الفاتح والداكن بدلاً من bg-white الثابت.
للمراجعة
04 System Color Preference تفضيل الألوان في نظام التشغيل
ميزة استعلام الوسائط التي تكشف ما إذا كان المستخدم يفعّل الوضع الداكن في نظام تشغيل جهازه.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 FOUC FOUC
Flash of Unstyled or Wrong-Theme Content
الوميض الأبيض الخاطف عند فتح الصفحة الداكنة، ويُمنع بوضع كود تهيئة الثيم في وسم head.
للمراجعة
02 CSS CSS
Cascading Style Sheets
تتيح تبديل الثيم لحظياً في المتصفح عبر المتغيرات القياسية دون تحميل ملف خارجي إضافي.
للمراجعة
03 OS OS
Operating System
يوفر للمتصفح تفضيل المظهر الفاتح أو الداكن العام للمستخدم عبر خاصية prefers-color-scheme.
للمراجعة
04 WCAG WCAG
Web Content Accessibility Guidelines
معايير التباين البصري الواجب التحقق منها في الوضعين الفاتح والداكن وأي ثيم مخصص.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. استبدل الكلاسات الثابتة bg-white وtext-dark بكلاسات bg-body-tertiary وtext-body وtext-body-secondary مع شارة bg-primary-subtle وtext-primary-emphasis داخل حاوية تحمل data-bs-theme="dark".

  2. عرّف محدد السمة [data-bs-theme="midnight"] لإعادة ضبط متغيرات --bs-body-bg و--bs-body-color و--bs-border-color، وطبّق السمة على صندوق يحمل p-3 border rounded-3 bg-body text-body.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما السمة القياسية التي تفعل الوضع الداكن الأصيل على كامل مستند بوتستراب 5.3؟

توضع السمة data-bs-theme="dark" على وسم <html> الجذري لتبديل متغيرات الألوان في الصفحة كلها.

02

هل يمكن وضع data-bs-theme="dark" على عنصر .card أو .dropdown-menu منفرد مع بقاء باقي الصفحة في الوضع الفاتح؟

صحيح؛ يدعم بوتستراب 5.3 النطاق الموضعي للثيم على أي مكوّن وأبنائه دون تغيير بقية الصفحة.

03

لماذا تتعطل جمالية وتناسق البطاقة المزودة بكلاسي "bg-white text-dark" عند التحويل إلى الوضع الداكن؟

لأن bg-white وtext-dark ألوان فيزيائية جامدة لا تتغير مع الثيم، ويجب استبدالها بـ bg-body وtext-body التكيفية.

04

أي كلاس خلفية دلالي يمنحك سطحاً فرعياً هادئاً يتكيف تلقائياً مع الوضعين الفاتح والداكن؟

يرتبط الكلاس .bg-body-tertiary بالمتغير التكيفي --bs-tertiary-bg فيتأقلم تلقائياً في الوضعين.

05

ما الواجهة البرمجية في المتصفح التي تكشف تفضيل الوضع الداكن في نظام تشغيل الزائر؟

تُستخدم دالة window.matchMedia('(prefers-color-scheme: dark)') لفحص ومتابعة تفضيل النظام.

06

هل يُفضل وضع سكريبت تهيئة سمة data-bs-theme داخل وسم <head> لمنع الوميض الأبيض الخاطف عند تحديث الصفحة الداكنة؟

صحيح؛ ضبط السمة قبل بدء رسم عناصر body يمنع وميض الخلفية البيضاء المزعج.

07

كيف تنشئ وضعاً لونياً ثالثاً مخصصاً باسم "sepia" في بوتستراب 5.3 دون الحاجة لإعادة ترجمة Sass؟

بتعريف متغيرات CSS مثل --bs-body-bg و--bs-body-color داخل المحدد [data-bs-theme="sepia"].

08

هل يتطلب تشغيل الوضع الداكن في بوتستراب 5.3 تنزيل ملف خارجي منفصل باسم bootstrap-dark.min.css؟

خطأ؛ متغيرات الوضع الداكن مدمجة أصلاً داخل ملف bootstrap.min.css القياسي ونسخته العربية.