اللون (Color)
الـ Bootstrap مدعوم بنظام ألوان واسع يقوم بتنسيق الأنماط والمكونات الخاصة بنا. وهذا يتيح تخصيصاً وتوسيعاً أكثر شمولاً لأي مشروع.
الألوان
تمت الإضافة في الإصدار v5.3.0لقد استمرت لوحة ألوان الـ Bootstrap في التوسع وأصبحت أكثر دقة في الإصدار v5.3.0. لقد أضفنا متغيرات جديدة لألوان النصوص والخلفيات secondary و tertiary بالإضافة إلى {color}-bg-subtle و {color}-border-subtle و {color}-text-emphasis لألوان السمة الخاصة بنا. هذه الألوان الجديدة متاحة من خلال متغيرات Sass و CSS (ولكن ليس من خلال خرائط الألوان أو فئات الأدوات المساعدة) بهدف صريح هو تسهيل التخصيص عبر أنماط ألوان متعددة مثل الفاتح والمظلم. يتم تعيين هذه المتغيرات الجديدة عالمياً على :root وهي متكيفة مع وضع الألوان المظلم الجديد بينما تظل ألوان السمة الأصلية دون تغيير.
توفر الألوان التي تنتهي بـ -rgb قيم red, green, blue لاستخدامها في أنماط ألوان rgb() و rgba(). على سبيل المثال، rgba(var(--bs-secondary-bg-rgb), .5).
تنبيه! هناك بعض الارتباك المحتمل فيما يتعلق بألواننا الجديدة secondary و tertiary ، ولون السمة secondary الحالي، بالإضافة إلى ألوان السمة الفاتحة والمظلمة. توقع أن يتم تسوية هذا الأمر في الإصدار v6.
| الوصف | العينة | المتغيرات |
|---|---|---|
Body — اللون الأمامي الافتراضي (color) والخلفية، بما في ذلك المكونات. | --bs-body-color--bs-body-color-rgb | |
--bs-body-bg--bs-body-bg-rgb | ||
Secondary — استخدم خيار | --bs-secondary-color--bs-secondary-color-rgb | |
--bs-secondary-bg--bs-secondary-bg-rgb | ||
Tertiary — استخدم خيار | --bs-tertiary-color--bs-tertiary-color-rgb | |
--bs-tertiary-bg--bs-tertiary-bg-rgb | ||
Emphasis — للنصوص ذات التباين العالي. لا ينطبق على الخلفيات. | --bs-emphasis-color--bs-emphasis-color-rgb | |
Border — لحدود المكونات، والفواصل، والقواعد. استخدم | --bs-border-color--bs-border-color-rgb | |
Primary — لون السمة الرئيسي، يستخدم للروابط التشعبية، وأنماط التركيز، وحالات المكونات والنماذج النشطة. | --bs-primary--bs-primary-rgb | |
--bs-primary-bg-subtle | ||
--bs-primary-border-subtle | ||
نص تجريبي | --bs-primary-text-emphasis | |
Success — لون السمة المستخدم للإجراءات والمعلومات الإيجابية أو الناجحة. | --bs-success--bs-success-rgb | |
--bs-success-bg-subtle | ||
--bs-success-border-subtle | ||
نص تجريبي | --bs-success-text-emphasis | |
Danger — لون السمة المستخدم للأخطاء والإجراءات الخطيرة. | --bs-danger--bs-danger-rgb | |
--bs-danger-bg-subtle | ||
--bs-danger-border-subtle | ||
نص تجريبي | --bs-danger-text-emphasis | |
Warning — لون السمة المستخدم لرسائل التحذير غير المدمرة. | --bs-warning--bs-warning-rgb | |
--bs-warning-bg-subtle | ||
--bs-warning-border-subtle | ||
نص تجريبي | --bs-warning-text-emphasis | |
Info — لون السمة المستخدم للمحتوى المحايد والمعلوماتي. | --bs-info--bs-info-rgb | |
--bs-info-bg-subtle | ||
--bs-info-border-subtle | ||
نص تجريبي | --bs-info-text-emphasis | |
Light — خيار سمة إضافي للألوان ذات التباين الأقل. | --bs-light--bs-light-rgb | |
--bs-light-bg-subtle | ||
--bs-light-border-subtle | ||
نص تجريبي | --bs-light-text-emphasis | |
Dark — خيار سمة إضافي للألوان ذات التباين الأعلى. | --bs-dark--bs-dark-rgb | |
--bs-dark-bg-subtle | ||
--bs-dark-border-subtle | ||
نص تجريبي | --bs-dark-text-emphasis |
استخدام الألوان الجديدة
يمكن الوصول إلى هذه الألوان الجديدة عبر متغيرات الـ CSS والفئات (classes) المساعدة مثل --bs-primary-bg-subtle و .bg-primary-subtle مما يتيح لك إنشاء قواعد الـ CSS الخاصة بك باستخدام المتغيرات، أو تطبيق الأنماط بسرعة عبر الفئات (classes). تم بناء الأدوات المساعدة باستخدام متغيرات الـ CSS المرتبطة باللون، وبما أننا نقوم بتخصيص متغيرات الـ CSS هذه للوضع المظلم، فإنها تكون متكيفة مع وضع الألوان بشكل افتراضي.
<div class="p-3 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
Example element with utilities
</div> ألوان السمة (Theme colors)
نستخدم مجموعة فرعية من جميع الألوان لإنشاء لوحة ألوان أصغر لتوليد مخططات الألوان، وهي متاحة أيضاً كمتغيرات Sass وخريطة (map) Sass في ملف scss/_variables.scss الخاص بـ Bootstrap.
جميع هذه الألوان متاحة كخريطة (map) Sass، $theme-colors.
$theme-colors: (
"primary": $primary,
"secondary": $secondary,
"success": $success,
"info": $info,
"warning": $warning,
"danger": $danger,
"light": $light,
"dark": $dark
);
Check out our Sass maps and loops docs for how to modify these colors.
جميع الألوان
جميع ألوان الـ Bootstrap متاحة كمتغيرات Sass وخريطة (map) Sass في ملف scss/_variables.scss. ولتجنب زيادة أحجام الملفات، لا نقوم بإنشاء فئات (classes) للنصوص أو ألوان الخلفية لكل متغير من هذه المتغيرات. بدلاً من ذلك، نختار مجموعة فرعية من هذه الألوان لـ لوحة ألوان السمة.
تأكد من مراقبة نسب التباين أثناء تخصيص الألوان. كما هو موضح أدناه، أضفنا ثلاث نسب تباين لكل لون من الألوان الرئيسية—واحدة لألوان العينة الحالية، وواحدة مقابل اللون الأبيض، وواحدة مقابل اللون الأسود.
$black #000
$white #fff
ملاحظات حول الـ Sass
لا يمكن للـ Sass توليد المتغيرات برمجياً، لذا قمنا بإنشاء متغيرات لكل درجة تفتيح (tint) وتغميق (shade) يدوياً. نحن نحدد القيمة المتوسطة (على سبيل المثال $blue-500) ونستخدم دوال ألوان مخصصة لتفتيح (lighten) أو تغميق (darken) ألواننا عبر دالة الألوان mix() الخاصة بالـ Sass.
استخدام mix() ليس هو نفسه استخدام lighten() و darken()؛ حيث تقوم الأولى بدمج اللون المحدد مع الأبيض أو الأسود، بينما تقوم الثانية فقط بتعديل قيمة السطوع لكل لون. والنتيجة هي مجموعة ألوان أكثر اكتمالاً، كما هو موضح في عرض CodePen هذا.
تستخدم الدوال tint-color() و shade-color() دالة mix() جنباً إلى جنب مع المتغير $theme-color-interval الخاص بنا، والذي يحدد قيمة مئوية متدرجة لكل لون مختلط ننتجه. راجع ملفي scss/_functions.scss و scss/_variables.scss للحصول على الكود المصدري الكامل.
خرائط الـ Sass للألوان
تتضمن ملفات الـ Sass المصدرية لـ Bootstrap ثلاث خرائط (maps) لمساعدتك في التكرار بسرعة وسهولة عبر قائمة من الألوان وقيم الـ hex الخاصة بها.
$colorsتسرد جميع ألواننا الأساسية المتاحة (500)$theme-colorsتسرد جميع ألوان السمة المسماة دلالياً (موضحة أدناه)$graysتسرد جميع درجات التفتيح والتغميق للون الرمادي
داخل scss/_variables.scss ، ستجد متغيرات ألوان الـ Bootstrap وخريطة (map) الـ Sass. إليك مثال على خريطة $colors الـ Sass:
$colors: (
"blue": $blue,
"indigo": $indigo,
"purple": $purple,
"pink": $pink,
"red": $red,
"orange": $orange,
"yellow": $yellow,
"green": $green,
"teal": $teal,
"cyan": $cyan,
"black": $black,
"white": $white,
"gray": $gray-600,
"gray-dark": $gray-800
);
قم بإضافة أو إزالة أو تعديل القيم داخل الخريطة (map) لتحديث كيفية استخدامها في العديد من المكونات الأخرى. لسوء الحظ، في الوقت الحالي، لا يستخدم كل مكون خريطة الـ Sass هذه. ستسعى التحديثات المستقبلية إلى تحسين ذلك. وحتى ذلك الحين، خطط لاستخدام متغيرات ${color} وهذه الخريطة (map) الـ Sass.
مثال
إليك كيفية استخدام هذه المتغيرات في الـ Sass الخاص بك:
.alpha { color: $purple; }
.beta {
color: $yellow-300;
background-color: $indigo-900;
}
فئات (classes) الأدوات المساعدة لـ اللون و الخلفية متاحة أيضاً لتعيين color و background-color باستخدام قيم الألوان 500.
توليد الأدوات المساعدة (Generating utilities)
تمت الإضافة في الإصدار v5.1.0لا يتضمن الـ Bootstrap أدوات مساعدة لـ color و background-color لكل متغير لون، ولكن يمكنك توليد هذه الأدوات بنفسك باستخدام utility API وخرائط الـ Sass الموسعة التي تمت إضافتها في الإصدار v5.1.0.
- للبدء، تأكد من استيراد الدوال (functions)، والمتغيرات (variables)، والمزجات (mixins)، والأدوات المساعدة (utilities) الخاصة بنا.
- استخدم الدالة (function)
map-merge-multiple()لدمج عدة خرائط (maps) Sass معاً بسرعة في خريطة (map) جديدة. - ادمج هذه الخريطة المجمعة الجديدة لتوسيع أي أداة مساعدة باسم فئة (class) بتنسيق
{color}-{level}.
إليك مثال يقوم بتوليد أدوات مساعدة لألوان النصوص (على سبيل المثال .text-purple-500) باستخدام الخطوات المذكورة أعلاه.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/variables-dark";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$all-colors: map-merge-multiple($blues, $indigos, $purples, $pinks, $reds, $oranges, $yellows, $greens, $teals, $cyans);
$utilities: map-merge(
$utilities,
(
"color": map-merge(
map-get($utilities, "color"),
(
values: map-merge(
map-get(map-get($utilities, "color"), "values"),
(
$all-colors
),
),
),
),
)
);
@import "bootstrap/scss/utilities/api";
سيؤدي هذا إلى توليد أدوات مساعدة جديدة .text-{color}-{level} لكل لون ومستوى. يمكنك القيام بنفس الشيء لأي أداة مساعدة أو خاصية أخرى أيضاً.