Skip to main content Skip to docs navigation
تمت الإضافة في v5.3 مشاهدة على الـ GitHub

أوضاع الألوان (Color modes)

الـ Bootstrap يدعم الآن أوضاع الألوان، أو السمات (themes)، بدءاً من الإصدار v5.3.0. استكشف وضع الألوان الفاتح الافتراضي ووضع الألوان الداكن الجديد، أو أنشئ وضعك الخاص باستخدام أنماطنا كقالب.

جرّبه بنفسك! قم بتنزيل الشيفرة المصدرية والعرض التوضيحي العملي لاستخدام الـ Bootstrap مع Stylelint، وأوضاع الألوان من مستودع twbs/examples. يمكنك أيضاً فتح المثال في StackBlitz.

الوضع الداكن

يدعم الـ Bootstrap الآن أوضاع الألوان، بدءاً من الوضع الداكن (Dark Mode)! مع الإصدار v5.3.0، يمكنك تنفيذ مبدّل أوضاع الألوان الخاص بك (راجع المثال أدناه من مستندات الـ Bootstrap) وتطبيق أوضاع الألوان المختلفة بالطريقة التي تناسبك. نحن ندعم الوضع الفاتح (الافتراضي) والآن أيضاً الوضع الداكن. ويمكن تبديل أوضاع الألوان على مستوى عنصر <html> بالكامل أو على مكونات وعناصر محددة، وذلك بفضل السمة data-bs-theme.

وبدلاً من ذلك، يمكنك أيضاً الانتقال إلى تنفيذ يعتمد على media query بفضل مزج (mixin) أوضاع الألوان لدينا—راجع قسم الاستخدام للحصول على التفاصيل. ومع ذلك، انتبه إلى أن هذا يلغي إمكانية تغيير السمات (themes) على مستوى كل مكون على حدة كما هو موضح أدناه.

مثال

على سبيل المثال، لتغيير وضع الألوان لقائمة منسدلة، أضف data-bs-theme="light" أو data-bs-theme="dark" إلى .dropdown الأب. والآن، بغض النظر عن وضع الألوان العام، سيتم عرض هذه القوائم المنسدلة باستخدام قيمة السمة (theme) المحددة.

html
<div class="dropdown" data-bs-theme="light">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButtonLight" data-bs-toggle="dropdown" aria-expanded="false">
    Default dropdown
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButtonLight">
    <li><a class="dropdown-item active" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
    <li><hr class="dropdown-divider"></li>
    <li><a class="dropdown-item" href="#">Separated link</a></li>
  </ul>
</div>

<div class="dropdown" data-bs-theme="dark">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButtonDark" data-bs-toggle="dropdown" aria-expanded="false">
    Dark dropdown
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButtonDark">
    <li><a class="dropdown-item active" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
    <li><hr class="dropdown-divider"></li>
    <li><a class="dropdown-item" href="#">Separated link</a></li>
  </ul>
</div>

كيف يعمل ؟

  • كما هو موضح أعلاه، يتم التحكم في أنماط أوضاع الألوان بواسطة السمة data-bs-theme. يمكن تطبيق هذه السمة على عنصر <html> أو على أي عنصر أو مكون آخر من مكونات الـ Bootstrap. وإذا تم تطبيقها على عنصر <html>، فسيتم تطبيقها على كل شيء. أما إذا تم تطبيقها على مكون أو عنصر، فسيقتصر تأثيرها على ذلك المكون أو العنصر المحدد.

  • لكل وضع ألوان ترغب في دعمه، ستحتاج إلى إضافة تجاوزات (overrides) جديدة لمتغيرات CSS العامة المشتركة. نحن نقوم بذلك بالفعل في ورقة الأنماط (stylesheet) _root.scss للوضع الداكن، بينما تمثل قيم الوضع الفاتح القيم الافتراضية. عند كتابة أنماط خاصة بوضع ألوان معين، استخدم المزج (mixin):

    // Color mode variables in _root.scss
    @include color-mode(dark) {
      // CSS variable overrides here...
    }
    
  • نستخدم الملف المخصص _variables-dark.scss لتشغيل تجاوزات (overrides) متغيرات CSS العامة المشتركة الخاصة بالوضع الداكن. هذا الملف ليس مطلوباً لأوضاع الألوان المخصصة الخاصة بك، ولكنه مطلوب لوضعنا الداكن لسببين. أولاً، من الأفضل وجود مكان واحد لإعادة تعيين الألوان العامة. ثانياً، كان لا بد من تجاوز بعض متغيرات الـ Sass الخاصة بصور الخلفية المضمّنة في CSS لدينا لعناصر مثل القوائم المطوية (Accordion) ومكونات النماذج وغيرها.

الإستخدام

تمكين الوضع الداكن

قم بتمكين وضع الألوان الداكن المدمج عبر مشروعك بالكامل من خلال إضافة السمة data-bs-theme="dark" إلى عنصر <html>. سيؤدي ذلك إلى تطبيق وضع الألوان الداكن على جميع المكونات والعناصر، باستثناء تلك التي تم تطبيق سمة data-bs-theme محددة عليها. بالاعتماد على قالب البدء السريع:

<!doctype html>
<html lang="en" data-bs-theme="dark">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
  </head>
  <body>
    <h1>Hello, world!</h1>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
  </body>
</html>

لا يأتي الـ Bootstrap حالياً مع منتقي أوضاع ألوان مدمج، ولكن يمكنك استخدام المنتقي الموجود في مستنداتنا إذا أردت. تعرّف على المزيد في قسم JavaScript.

البناء باستخدام Sass

يتوفر خيار الوضع الداكن الجديد لدينا لجميع مستخدمي الـ Bootstrap، ولكنه يُدار عبر سمات البيانات (data attributes) بدلاً من media queries، ولا يقوم تلقائياً بتبديل وضع الألوان في مشروعك. يمكنك تعطيل وضعنا الداكن بالكامل عبر Sass من خلال تغيير $enable-dark-mode إلى false.

نستخدم مزج (mixin) مخصصاً في Sass باسم color-mode() لمساعدتك على التحكم في كيفية تطبيق أوضاع الألوان. وبشكل افتراضي، نستخدم نهج سمات data، مما يتيح لك إنشاء تجارب أكثر ملاءمة للمستخدم بحيث يمكن لزوارك اختيار الوضع الداكن التلقائي أو التحكم في تفضيلاتهم بأنفسهم (كما هو الحال في مستنداتنا هنا). كما تُعد هذه طريقة سهلة وقابلة للتوسع لإضافة سمات (themes) مختلفة وأوضاع ألوان مخصصة إضافية تتجاوز الوضعين الفاتح والداكن.

إذا كنت ترغب في استخدام media queries وجعل أوضاع الألوان تلقائية فقط، فيمكنك تغيير النوع الافتراضي للمزج (mixin) عبر متغير Sass. تأمل المقتطف التالي ومخرجات CSS المترجمة الخاصة به.

$color-mode-type: data;

@include color-mode(dark) {
  .element {
    color: var(--bs-primary-text-emphasis);
    background-color: var(--bs-primary-bg-subtle);
  }
}

تُخرج إلى::

[data-bs-theme=dark] .element {
  color: var(--bs-primary-text-emphasis);
  background-color: var(--bs-primary-bg-subtle);
}

وعند الضبط على الـ media-query:

$color-mode-type: media-query;

@include color-mode(dark) {
  .element {
    color: var(--bs-primary-text-emphasis);
    background-color: var(--bs-primary-bg-subtle);
  }
}

تُخرج إلى:

@media (prefers-color-scheme: dark) {
  .element {
    color: var(--bs-primary-text-emphasis);
    background-color: var(--bs-primary-bg-subtle);
  }
}

أوضاع الألوان المخصصة

على الرغم من أن حالة الاستخدام الأساسية لأوضاع الألوان هي الوضع الفاتح والوضع الداكن، فإن أوضاع الألوان المخصصة ممكنة أيضاً. أنشئ محدد data-bs-theme الخاص بك باستخدام قيمة مخصصة كاسم لوضع الألوان، ثم عدّل متغيرات Sass وCSS الخاصة بنا حسب الحاجة. لقد اخترنا إنشاء ورقة أنماط (stylesheet) منفصلة باسم _variables-dark.scss لاحتواء متغيرات Sass الخاصة بالوضع الداكن في Bootstrap، لكن هذا ليس مطلوباً منك.

على سبيل المثال، يمكنك إنشاء "سمة زرقاء" (blue theme) باستخدام المحدد data-bs-theme="blue". في ملف Sass أو CSS المخصص لديك، أضف المحدد الجديد وتجاوز أي متغيرات CSS عامة أو خاصة بالمكونات حسب الحاجة. وإذا كنت تستخدم Sass، فيمكنك أيضاً استخدام دوال (functions) Sass داخل تجاوزات متغيرات CSS الخاصة بك.

[data-bs-theme="blue"] {
  --bs-body-color: var(--bs-white);
  --bs-body-color-rgb: #{to-rgb($white)};
  --bs-body-bg: var(--bs-blue);
  --bs-body-bg-rgb: #{to-rgb($blue)};
  --bs-tertiary-bg: #{$blue-600};

  .dropdown-menu {
    --bs-dropdown-bg: #{mix($blue-500, $blue-600)};
    --bs-dropdown-link-active-bg: #{$blue-700};
  }

  .btn-secondary {
    --bs-btn-bg: #{mix($gray-600, $blue-400, 50%)};
    --bs-btn-border-color: #{rgba($white, .25)};
    --bs-btn-hover-bg: #{darken(mix($gray-600, $blue-400, 50%), 5%)};
    --bs-btn-hover-border-color: #{rgba($white, .25)};
    --bs-btn-active-bg: #{darken(mix($gray-600, $blue-400, 50%), 10%)};
    --bs-btn-active-border-color: #{rgba($white, .5)};
    --bs-btn-focus-border-color: #{rgba($white, .5)};
    --bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(255, 255, 255, .2);
  }
}

Example blue theme

Some paragraph text to show how the blue theme might look with written copy.


<div data-bs-theme="blue">
  ...
</div>

الـ (JavaScript)

للسماح للزوار أو المستخدمين بالتبديل بين أوضاع الألوان، ستحتاج إلى إنشاء عنصر تبديل للتحكم في السمة data-bs-theme على العنصر الجذر، <html>. لقد أنشأنا أداة تبديل في مستنداتنا تعتمد في البداية على وضع الألوان الحالي لنظام المستخدم، لكنها توفر خياراً لتجاوز ذلك واختيار وضع ألوان محدد.

فيما يلي نظرة على كود JavaScript الذي يشغّلها. لا تتردد في تفقد شريط التنقل الخاص بمستنداتنا لمعرفة كيفية تنفيذها باستخدام HTML و CSS من مكوناتنا الخاصة. يُقترح تضمين كود JavaScript في أعلى صفحتك لتقليل احتمالية وميض الشاشة أثناء إعادة تحميل موقعك. لاحظ أنه إذا قررت استخدام media queries لأوضاع الألوان الخاصة بك، فقد تحتاج إلى تعديل كود JavaScript أو إزالته إذا كنت تفضل التحكم الضمني.

/*!
 * Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
 * Copyright 2011-2026 The Bootstrap Authors
 * Licensed under the Creative Commons Attribution 3.0 Unported License.
 */

(() => {
  'use strict'

  const getStoredTheme = () => localStorage.getItem('theme')
  const setStoredTheme = theme => localStorage.setItem('theme', theme)

  const getPreferredTheme = () => {
    const storedTheme = getStoredTheme()
    if (storedTheme) {
      return storedTheme
    }

    return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
  }

  const setTheme = theme => {
    if (theme === 'auto') {
      document.documentElement.setAttribute('data-bs-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'))
    } else {
      document.documentElement.setAttribute('data-bs-theme', theme)
    }
  }

  setTheme(getPreferredTheme())

  const showActiveTheme = (theme, focus = false) => {
    const themeSwitcher = document.querySelector('#bd-theme')

    if (!themeSwitcher) {
      return
    }

    const themeSwitcherText = document.querySelector('#bd-theme-text')
    const activeThemeIcon = document.querySelector('.theme-icon-active use')
    const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`)
    const svgOfActiveBtn = btnToActive.querySelector('svg use').getAttribute('href')

    document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
      element.classList.remove('active')
      element.setAttribute('aria-pressed', 'false')
    })

    btnToActive.classList.add('active')
    btnToActive.setAttribute('aria-pressed', 'true')
    activeThemeIcon.setAttribute('href', svgOfActiveBtn)
    const themeSwitcherLabel = `${themeSwitcherText.textContent} (${btnToActive.dataset.bsThemeValue})`
    themeSwitcher.setAttribute('aria-label', themeSwitcherLabel)

    if (focus) {
      themeSwitcher.focus()
    }
  }

  window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
    const storedTheme = getStoredTheme()
    if (storedTheme !== 'light' && storedTheme !== 'dark') {
      setTheme(getPreferredTheme())
    }
  })

  window.addEventListener('DOMContentLoaded', () => {
    showActiveTheme(getPreferredTheme())

    document.querySelectorAll('[data-bs-theme-value]')
      .forEach(toggle => {
        toggle.addEventListener('click', () => {
          const theme = toggle.getAttribute('data-bs-theme-value')
          setStoredTheme(theme)
          setTheme(theme)
          showActiveTheme(theme, true)
        })
      })
  })
})()

إضافة ألوان السمات

إن إضافة لون جديد في $theme-colors ليست كافية لبعض مكوناتنا مثل التنبيهات alerts ومجموعات القوائم list groups. يجب أيضاً تعريف الألوان الجديدة في $theme-colors-text و $theme-colors-bg-subtle و $theme-colors-border-subtle للسمة الفاتحة؛ وكذلك في $theme-colors-text-dark و $theme-colors-bg-subtle-dark و $theme-colors-border-subtle-dark للسمة الداكنة.

هذه عملية يدوية لأن Sass لا يستطيع إنشاء متغيرات Sass الخاصة به انطلاقاً من متغير أو خريطة (map) موجودة مسبقاً. في الإصدارات المستقبلية من الـ Bootstrap، سنعيد النظر في هذا الإعداد لتقليل التكرار.

// Required
@import "functions";
@import "variables";
@import "variables-dark";

// Add a custom color to $theme-colors
$custom-colors: (
  "custom-color": #712cf9
);
$theme-colors: map-merge($theme-colors, $custom-colors);

@import "maps";
@import "mixins";
@import "utilities";

// Add a custom color to new theme maps

// Light mode
$custom-colors-text: ("custom-color": #712cf9);
$custom-colors-bg-subtle: ("custom-color": #e1d2fe);
$custom-colors-border-subtle: ("custom-color": #bfa1fc);

$theme-colors-text: map-merge($theme-colors-text, $custom-colors-text);
$theme-colors-bg-subtle: map-merge($theme-colors-bg-subtle, $custom-colors-bg-subtle);
$theme-colors-border-subtle: map-merge($theme-colors-border-subtle, $custom-colors-border-subtle);

// Dark mode
$custom-colors-text-dark: ("custom-color": #e1d2f2);
$custom-colors-bg-subtle-dark: ("custom-color": #8951fa);
$custom-colors-border-subtle-dark: ("custom-color": #e1d2f2);

$theme-colors-text-dark: map-merge($theme-colors-text-dark, $custom-colors-text-dark);
$theme-colors-bg-subtle-dark: map-merge($theme-colors-bg-subtle-dark, $custom-colors-bg-subtle-dark);
$theme-colors-border-subtle-dark: map-merge($theme-colors-border-subtle-dark, $custom-colors-border-subtle-dark);

// Remainder of Bootstrap imports
@import "root";
@import "reboot";
// etc

الـ (CSS)

المتغيرات (Variables)

يتم تكرار عشرات متغيرات CSS الموجودة على المستوى الجذر كعمليات تجاوز (overrides) للوضع الداكن. يتم تقييد نطاق هذه المتغيرات بمحدد وضع الألوان، والذي يكون افتراضياً data-bs-theme، ولكن يمكن تهيئته لاستخدام media query من نوع prefers-color-scheme. استخدم هذه المتغيرات كدليل إرشادي عند إنشاء أوضاع ألوان جديدة خاصة بك.

--#{$prefix}body-color: #{$body-color-dark};
--#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};
--#{$prefix}body-bg: #{$body-bg-dark};
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};

--#{$prefix}emphasis-color: #{$body-emphasis-color-dark};
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};

--#{$prefix}secondary-color: #{$body-secondary-color-dark};
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};
--#{$prefix}secondary-bg: #{$body-secondary-bg-dark};
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};

--#{$prefix}tertiary-color: #{$body-tertiary-color-dark};
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
--#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};

@each $color, $value in $theme-colors-text-dark {
  --#{$prefix}#{$color}-text-emphasis: #{$value};
}

@each $color, $value in $theme-colors-bg-subtle-dark {
  --#{$prefix}#{$color}-bg-subtle: #{$value};
}

@each $color, $value in $theme-colors-border-subtle-dark {
  --#{$prefix}#{$color}-border-subtle: #{$value};
}

--#{$prefix}heading-color: #{$headings-color-dark};

--#{$prefix}link-color: #{$link-color-dark};
--#{$prefix}link-hover-color: #{$link-hover-color-dark};
--#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};
--#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};

--#{$prefix}code-color: #{$code-color-dark};
--#{$prefix}highlight-color: #{$mark-color-dark};
--#{$prefix}highlight-bg: #{$mark-bg-dark};

--#{$prefix}border-color: #{$border-color-dark};
--#{$prefix}border-color-translucent: #{$border-color-translucent-dark};

--#{$prefix}form-valid-color: #{$form-valid-color-dark};
--#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};
--#{$prefix}form-invalid-color: #{$form-invalid-color-dark};
--#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};

متغيرات الـ (Sass)

يتم إنشاء متغيرات CSS الخاصة بوضع الألوان الداكن لدينا جزئياً من متغيرات Sass المخصصة للوضع الداكن الموجودة في _variables-dark.scss. ويتضمن ذلك أيضاً بعض عمليات التجاوز (overrides) المخصصة لتغيير ألوان ملفات الـ SVG المضمنة المستخدمة في مختلف مكوناتنا.

// scss-docs-start theme-text-dark-variables
$primary-text-emphasis-dark:        tint-color($primary, 40%);
$secondary-text-emphasis-dark:      tint-color($secondary, 40%);
$success-text-emphasis-dark:        tint-color($success, 40%);
$info-text-emphasis-dark:           tint-color($info, 40%);
$warning-text-emphasis-dark:        tint-color($warning, 40%);
$danger-text-emphasis-dark:         tint-color($danger, 40%);
$light-text-emphasis-dark:          $gray-100;
$dark-text-emphasis-dark:           $gray-300;
// scss-docs-end theme-text-dark-variables

// scss-docs-start theme-bg-subtle-dark-variables
$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);
// scss-docs-end theme-bg-subtle-dark-variables

// scss-docs-start theme-border-subtle-dark-variables
$primary-border-subtle-dark:        shade-color($primary, 40%);
$secondary-border-subtle-dark:      shade-color($secondary, 40%);
$success-border-subtle-dark:        shade-color($success, 40%);
$info-border-subtle-dark:           shade-color($info, 40%);
$warning-border-subtle-dark:        shade-color($warning, 40%);
$danger-border-subtle-dark:         shade-color($danger, 40%);
$light-border-subtle-dark:          $gray-700;
$dark-border-subtle-dark:           $gray-800;
// scss-docs-end theme-border-subtle-dark-variables

$body-color-dark:                   $gray-300;
$body-bg-dark:                      $gray-900;
$body-secondary-color-dark:         rgba($body-color-dark, .75);
$body-secondary-bg-dark:            $gray-800;
$body-tertiary-color-dark:          rgba($body-color-dark, .5);
$body-tertiary-bg-dark:             mix($gray-800, $gray-900, 50%);
$body-emphasis-color-dark:          $white;
$border-color-dark:                 $gray-700;
$border-color-translucent-dark:     rgba($white, .15);
$headings-color-dark:               inherit;
$link-color-dark:                   tint-color($primary, 40%);
$link-hover-color-dark:             shift-color($link-color-dark, -$link-shade-percentage);
$code-color-dark:                   tint-color($code-color, 40%);
$mark-color-dark:                   $body-color-dark;
$mark-bg-dark:                      $yellow-800;


//
// Forms
//

$form-select-indicator-color-dark:  $body-color-dark;
$form-select-indicator-dark:        url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color-dark}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>");

$form-switch-color-dark:            rgba($white, .25);
$form-switch-bg-image-dark:         url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color-dark}'/></svg>");

// scss-docs-start form-validation-colors-dark
$form-valid-color-dark:             $green-300;
$form-valid-border-color-dark:      $green-300;
$form-invalid-color-dark:           $red-300;
$form-invalid-border-color-dark:    $red-300;
// scss-docs-end form-validation-colors-dark


//
// Accordion
//

$accordion-icon-color-dark:         $primary-text-emphasis-dark;
$accordion-icon-active-color-dark:  $primary-text-emphasis-dark;

$accordion-button-icon-dark:         url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>");
$accordion-button-active-icon-dark:  url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>");

دمج/مزج الـ (Sass)

يمكن تحديد نطاق أنماط الوضع الداكن، وأي أوضاع ألوان مخصصة تنشئها، بشكل مناسب لمحدد سمة data-bs-theme أو media query باستخدام المزج (mixin) القابل للتخصيص color-mode(). راجع قسم استخدام الـ Sass لمزيد من التفاصيل.

@mixin color-mode($mode: light, $root: false) {
  @if $color-mode-type == "media-query" {
    @if $root == true {
      @media (prefers-color-scheme: $mode) {
        :root {
          @content;
        }
      }
    } @else {
      @media (prefers-color-scheme: $mode) {
        @content;
      }
    }
  } @else {
    [data-bs-theme="#{$mode}"] {
      @content;
    }
  }
}