نعم ✅ وبطريقة احترافية جدًا مع Bootstrap 5.3 👌🔥
لأننا نستخدم:
data-bs-theme="light"
data-bs-theme="dark"
يمكنك تغيير خلفية أي عنصر بناءً على الوضع بسهولة عبر CSS.
🎯 الطريقة الصحيحة (المعتمدة رسميًا)
Bootstrap يغير الثيم عبر:
<html data-bs-theme="dark">
إذن يمكننا استهدافه هكذا 👇
🟢 الطريقة 1: استهداف مباشر حسب الثيم
مثال: تغيير خلفية كارد
/* Light */
[data-bs-theme="light"] .book-card {
background-color: #ffffff;
}/* Dark */
[data-bs-theme="dark"] .book-card {
background-color: #1e293b;
}
🔥 الآن .book-card يتغير تلقائيًا عند تبديل الثيم.
🟢 الطريقة 2: استخدام CSS Variables (الأفضل)
بدل تكرار الكود، نعرّف متغير:
/* Light */
[data-bs-theme="light"] {
--card-custom-bg: #ffffff;
}/* Dark */
[data-bs-theme="dark"] {
--card-custom-bg: #1e293b;
}
ثم:
.book-card {
background-color: var(--card-custom-bg);
}
🔥 هذه الطريقة أنظف وقابلة للتوسع.
🟢 الطريقة 3: تغيير خلفية قسم كامل
مثلاً Hero Section:
[data-bs-theme="light"] .hero {
background: linear-gradient(to right, #eef2ff, #ffffff);
}[data-bs-theme="dark"] .hero {
background: linear-gradient(to right, #0f172a, #1e293b);
}
🟢 الطريقة 4: تغيير صورة خلفية حسب الوضع
[data-bs-theme="light"] .hero {
background-image: url("/light-bg.jpg");
}[data-bs-theme="dark"] .hero {
background-image: url("/dark-bg.jpg");
}
🔥 يستخدمها كثير من المواقع الاحترافية.
🟢 الطريقة 5: تغيير Navbar بالكامل
[data-bs-theme="light"] .navbar {
background-color: white !important;
}[data-bs-theme="dark"] .navbar {
background-color: #1e293b !important;
}
🎯 مثال عملي داخل React
<div className="book-card p-3 rounded shadow">
محتوى الكتاب
</div>
ثم في CSS:
.book-card {
transition: background-color 0.3s ease;
}
🔥 سيصبح التبديل ناعمًا.
🧠 لماذا هذه الطريقة احترافية؟
| السبب | لماذا |
|---|---|
| تعتمد على data-bs-theme | متوافقة مع Bootstrap |
| لا تحتاج JS إضافي | نظيفة |
| لا re-render | أداء أفضل |
| تعمل عالميًا | سهلة الصيانة |
🏆 خلاصة احترافية
إذا أردت أفضل تنظيم:
1️⃣ عرّف ألوانك كـ CSS Variables
2️⃣ اربطها بالـ theme
3️⃣ استخدم المتغير داخل الكلاسات