الخلفية (Background)
إيصال المعنى من خلال background-color وإضافة الزخرفة باستخدام التدرجات (gradients).
نصيحة حول إمكانية الوصول: استخدام اللون لإضافة معنى يوفر إشارة بصرية فقط، والتي لن يتم نقلها إلى مستخدمي التقنيات المساعدة مثل قارئات الشاشة. يرجى التأكد من أن المعنى واضح من المحتوى نفسه (على سبيل المثال، النص المرئي مع كافٍ تباين الألوان) أو مدرج عبر وسائل بديلة، مثل نص إضافي مخفي باستخدام الفئة (class) .visually-hidden.
لون الخلفية
على غرار فئات ألوان النصوص السياقية، قم بتعيين خلفية العنصر إلى أي فئة سياقية. أدوات الخلفية لا تقوم بتعيين color، لذا في بعض الحالات قد ترغب في استخدام .text-* أدوات الألوان.
أدوات الخلفية مثل .bg-* التي تم إنشاؤها من خريطة (map) الـ $theme-colors الأصلية في الـ Sass لا تستجيب بعد لأنماط الألوان، ومع ذلك، فإن أي أداة .bg-*-subtle ستستجيب. سيتم حل هذه المشكلة في الإصدار v6.
<div class="p-3 mb-2 bg-primary text-white">.bg-primary</div>
<div class="p-3 mb-2 bg-primary-subtle text-primary-emphasis">.bg-primary-subtle</div>
<div class="p-3 mb-2 bg-secondary text-white">.bg-secondary</div>
<div class="p-3 mb-2 bg-secondary-subtle text-secondary-emphasis">.bg-secondary-subtle</div>
<div class="p-3 mb-2 bg-success text-white">.bg-success</div>
<div class="p-3 mb-2 bg-success-subtle text-success-emphasis">.bg-success-subtle</div>
<div class="p-3 mb-2 bg-danger text-white">.bg-danger</div>
<div class="p-3 mb-2 bg-danger-subtle text-danger-emphasis">.bg-danger-subtle</div>
<div class="p-3 mb-2 bg-warning text-dark">.bg-warning</div>
<div class="p-3 mb-2 bg-warning-subtle text-warning-emphasis">.bg-warning-subtle</div>
<div class="p-3 mb-2 bg-info text-dark">.bg-info</div>
<div class="p-3 mb-2 bg-info-subtle text-info-emphasis">.bg-info-subtle</div>
<div class="p-3 mb-2 bg-light text-dark">.bg-light</div>
<div class="p-3 mb-2 bg-light-subtle text-light-emphasis">.bg-light-subtle</div>
<div class="p-3 mb-2 bg-dark text-white">.bg-dark</div>
<div class="p-3 mb-2 bg-dark-subtle text-dark-emphasis">.bg-dark-subtle</div>
<div class="p-3 mb-2 bg-body-secondary">.bg-body-secondary</div>
<div class="p-3 mb-2 bg-body-tertiary">.bg-body-tertiary</div>
<div class="p-3 mb-2 bg-body text-body">.bg-body</div>
<div class="p-3 mb-2 bg-black text-white">.bg-black</div>
<div class="p-3 mb-2 bg-white text-dark">.bg-white</div>
<div class="p-3 mb-2 bg-transparent text-body">.bg-transparent</div> تدرج لون الخلفية
من خلال إضافة الفئة (class) .bg-gradient, يتم إضافة تدرج خطي كصورة خلفية للخلفيات. يبدأ هذا التدرج بلون أبيض شبه شفاف يتلاشى نحو الأسفل.
هل تحتاج إلى تدرج في الـ CSS الخاص بك؟ فقط أضف background-image: var(--bs-gradient);.
الشفافية (Opacity)
تمت الإضافة في الإصدار v5.1.0بدءاً من الإصدار v5.1.0، يتم إنشاء أدوات background-color باستخدام الـ Sass عبر متغيرات CSS. وهذا يسمح بتغيير الألوان في الوقت الفعلي دون الحاجة إلى إعادة التجميع (compilation) وتغييرات ديناميكية في شفافية ألفا (alpha transparency).
كيف يعمل ؟
فكر في أداة .bg-success الافتراضية لدينا.
.bg-success {
--bs-bg-opacity: 1;
background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
}
نحن نستخدم نسخة RGB من متغير الـ CSS الخاص بنا --bs-success (والتي قيمتها 25, 135, 84) وربطنا متغير CSS ثانٍ، --bs-bg-opacity، للشفافية (مع قيمة افتراضية 1 بفضل متغير CSS محلي). هذا يعني أنه في أي وقت تستخدم فيه .bg-success الآن، ستكون قيمة الـ color المحسوبة هي rgba(25, 135, 84, 1). يتجنب متغير CSS المحلي داخل كل فئة .bg-* مشكلات الوراثة بحيث لا تحصل النسخ المتداخلة من الأدوات تلقائياً على شفافية معدلة.
مثال
لتغيير هذه الشفافية، قم بتجاوز --bs-bg-opacity عبر أنماط مخصصة أو أنماط مضمنة (inline styles).
<div class="bg-success p-2 text-white">This is default success background</div>
<div class="bg-success p-2" style="--bs-bg-opacity: .5;">This is 50% opacity success background</div> أو اختر من أي من أدوات .bg-opacity:
<div class="bg-success p-2 text-white">This is default success background</div>
<div class="bg-success p-2 text-white bg-opacity-75">This is 75% opacity success background</div>
<div class="bg-success p-2 text-dark bg-opacity-50">This is 50% opacity success background</div>
<div class="bg-success p-2 text-dark bg-opacity-25">This is 25% opacity success background</div>
<div class="bg-success p-2 text-dark bg-opacity-10">This is 10% opacity success background</div> الـ (CSS)
بالإضافة إلى وظائف الـ Sass التالية، يرجى القراءة عن خصائص CSS المخصصة (المعروفة أيضاً بـ CSS variables) المضمنة لدينا للألوان وأكثر.
متغيرات الـ (Sass)
معظم أدوات background-color يتم إنشاؤها بواسطة ألوان السمة (theme colors) الخاصة بنا، والتي تمت إعادة تعيينها من متغيرات لوحة الألوان العامة لدينا.
$blue: #0d6efd;
$indigo: #6610f2;
$purple: #6f42c1;
$pink: #d63384;
$red: #dc3545;
$orange: #fd7e14;
$yellow: #ffc107;
$green: #198754;
$teal: #20c997;
$cyan: #0dcaf0;
$primary: $blue;
$secondary: $gray-600;
$success: $green;
$info: $cyan;
$warning: $yellow;
$danger: $red;
$light: $gray-100;
$dark: $gray-900;
$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0));
ألوان التدرج الرمادي (Grayscale) متاحة أيضاً، ولكن يتم استخدام مجموعة فرعية منها فقط لإنشاء أي أدوات.
$white: #fff;
$gray-100: #f8f9fa;
$gray-200: #e9ecef;
$gray-300: #dee2e6;
$gray-400: #ced4da;
$gray-500: #adb5bd;
$gray-600: #6c757d;
$gray-700: #495057;
$gray-800: #343a40;
$gray-900: #212529;
$black: #000;
متغيرات لتعيين background-color في أدوات .bg-*-subtle في الوضع الفاتح والداكن:
$primary-bg-subtle: tint-color($primary, 80%);
$secondary-bg-subtle: tint-color($secondary, 80%);
$success-bg-subtle: tint-color($success, 80%);
$info-bg-subtle: tint-color($info, 80%);
$warning-bg-subtle: tint-color($warning, 80%);
$danger-bg-subtle: tint-color($danger, 80%);
$light-bg-subtle: mix($gray-100, $white);
$dark-bg-subtle: $gray-400;
$primary-bg-subtle-dark: shade-color($primary, 80%);
$secondary-bg-subtle-dark: shade-color($secondary, 80%);
$success-bg-subtle-dark: shade-color($success, 80%);
$info-bg-subtle-dark: shade-color($info, 80%);
$warning-bg-subtle-dark: shade-color($warning, 80%);
$danger-bg-subtle-dark: shade-color($danger, 80%);
$light-bg-subtle-dark: $gray-800;
$dark-bg-subtle-dark: mix($gray-800, $black);
خرائط الـ (Sass)
يتم بعد ذلك وضع ألوان السمة في خريطة (map) الـ Sass حتى نتمكن من التكرار عبرها لإنشاء الأدوات الخاصة بنا، ومعدلات المكونات، وأكثر من ذلك.
$theme-colors: (
"primary": $primary,
"secondary": $secondary,
"success": $success,
"info": $info,
"warning": $warning,
"danger": $danger,
"light": $light,
"dark": $dark
);
ألوان التدرج الرمادي (Grayscale) متاحة أيضاً كخريطة (map) في الـ Sass. هذه الخريطة (map) لا تُستخدم لإنشاء أي أدوات.
$grays: (
"100": $gray-100,
"200": $gray-200,
"300": $gray-300,
"400": $gray-400,
"500": $gray-500,
"600": $gray-600,
"700": $gray-700,
"800": $gray-800,
"900": $gray-900
);
يتم إنشاء ألوان RGB من خريطة (map) Sass منفصلة:
$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value");
تعتمد شفافية ألوان الخلفية على ذلك من خلال الخريطة (map) الخاصة بها والتي تستهلكها واجهة برمجة تطبيقات الأدوات (utilities API):
$utilities-bg: map-merge(
$utilities-colors,
(
"black": to-rgb($black),
"white": to-rgb($white),
"body": to-rgb($body-bg)
)
);
$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg");
$utilities-bg-subtle: (
"primary-subtle": var(--#{$prefix}primary-bg-subtle),
"secondary-subtle": var(--#{$prefix}secondary-bg-subtle),
"success-subtle": var(--#{$prefix}success-bg-subtle),
"info-subtle": var(--#{$prefix}info-bg-subtle),
"warning-subtle": var(--#{$prefix}warning-bg-subtle),
"danger-subtle": var(--#{$prefix}danger-bg-subtle),
"light-subtle": var(--#{$prefix}light-bg-subtle),
"dark-subtle": var(--#{$prefix}dark-bg-subtle)
);
ألوان خلفية وضع الألوان متاحة أيضاً كخريطة (map) في الـ Sass:
$theme-colors-bg-subtle: (
"primary": $primary-bg-subtle,
"secondary": $secondary-bg-subtle,
"success": $success-bg-subtle,
"info": $info-bg-subtle,
"warning": $warning-bg-subtle,
"danger": $danger-bg-subtle,
"light": $light-bg-subtle,
"dark": $dark-bg-subtle,
);
$theme-colors-bg-subtle-dark: (
"primary": $primary-bg-subtle-dark,
"secondary": $secondary-bg-subtle-dark,
"success": $success-bg-subtle-dark,
"info": $info-bg-subtle-dark,
"warning": $warning-bg-subtle-dark,
"danger": $danger-bg-subtle-dark,
"light": $light-bg-subtle-dark,
"dark": $dark-bg-subtle-dark,
);
دمج/مزج الـ (Sass mixins)
لا يتم استخدام أي مزجات (mixins) لإنشاء أدوات الخلفية الخاصة بنا، ولكن لدينا بعض المزجات (mixins) الإضافية لحالات أخرى قد ترغب فيها في إنشاء التدرجات الخاصة بك.
@mixin gradient-bg($color: null) {
background-color: $color;
@if $enable-gradients {
background-image: var(--#{$prefix}gradient);
}
}
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
}
// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
}
@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
background-image: linear-gradient($deg, $start-color, $end-color);
}
@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
}
@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
}
@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
background-image: radial-gradient(circle, $inner-color, $outer-color);
}
@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
}
واجهة برمجة تطبيقات أدوات Sass (Sass utilities API)
يتم التصريح عن أدوات الخلفية في الـ utilities API الخاصة بنا في scss/_utilities.scss. تعرف على كيفية استخدام الـ utilities API.
"background-color": (
property: background-color,
class: bg,
local-vars: (
"bg-opacity": 1
),
values: map-merge(
$utilities-bg-colors,
(
"transparent": transparent,
"body-secondary": rgba(var(--#{$prefix}secondary-bg-rgb), var(--#{$prefix}bg-opacity)),
"body-tertiary": rgba(var(--#{$prefix}tertiary-bg-rgb), var(--#{$prefix}bg-opacity)),
)
)
),
"bg-opacity": (
css-var: true,
class: bg-opacity,
values: (
10: .1,
25: .25,
50: .5,
75: .75,
100: 1
)
),
"subtle-background-color": (
property: background-color,
class: bg,
values: $utilities-bg-subtle
),