Перейти к основному контенту Перейти к навигации документации

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).

Внимание! Есть некоторая потенциальная путаница с нашими новыми вторичными и третичными цветами, и нашим существующим вторичным цветом темы, а также нашими светлыми и темными цветами темы. Ожидайте, что это будет исправлено в v6.

ОписаниеОбразецПеременные

Body — Цвет переднего плана (цвет) и фон по умолчанию, включая компоненты.

 

--bs-body-color
--bs-body-color-rgb

 

--bs-body-bg
--bs-body-bg-rgb

Secondary — Используйте опцию color для более светлого текста. Используйте опцию bg для разделителей и для обозначения отключенных состояний компонентов.

 

--bs-secondary-color
--bs-secondary-color-rgb

 

--bs-secondary-bg
--bs-secondary-bg-rgb

Tertiary — Используйте опцию color для еще более светлого текста. Используйте опцию bg для стилизации фонов состояний наведения, акцентов и углублений.

 

--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-translucent для смешивания с фонами со значением rgba().

 

--bs-border-color
--bs-border-color-rgb

Primary — Главный цвет темы, используемый для гиперссылок, стилей фокуса, а также активных состояний компонентов и форм.

 

--bs-primary
--bs-primary-rgb

 

--bs-primary-bg-subtle

 

--bs-primary-border-subtle

Text

--bs-primary-text-emphasis

Success — Цвет темы, используемый для положительных или успешных действий и информации.

 

--bs-success
--bs-success-rgb

 

--bs-success-bg-subtle

 

--bs-success-border-subtle

Text

--bs-success-text-emphasis

Danger — Цвет темы, используемый для ошибок и опасных действий.

 

--bs-danger
--bs-danger-rgb

 

--bs-danger-bg-subtle

 

--bs-danger-border-subtle

Text

--bs-danger-text-emphasis

Warning — Цвет темы, используемый для неразрушительных предупреждающих сообщений.

 

--bs-warning
--bs-warning-rgb

 

--bs-warning-bg-subtle

 

--bs-warning-border-subtle

Text

--bs-warning-text-emphasis

Info — Цвет темы, используемый для нейтрального и информативного содержимого.

 

--bs-info
--bs-info-rgb

 

--bs-info-bg-subtle

 

--bs-info-border-subtle

Text

--bs-info-text-emphasis

Light — Дополнительная опция темы для менее контрастных цветов.

 

--bs-light
--bs-light-rgb

 

--bs-light-bg-subtle

 

--bs-light-border-subtle

Text

--bs-light-text-emphasis

Dark — Дополнительная опция темы для более контрастных цветов.

 

--bs-dark
--bs-dark-rgb

 

--bs-dark-bg-subtle

 

--bs-dark-border-subtle

Text

--bs-dark-text-emphasis

Использование новых цветов

Эти новые цвета доступны через CSS переменные и утилитарные классы — такие как --bs-primary-bg-subtle и .bg-primary-subtle — позволяя вам создавать свои собственные CSS правила с переменными или быстро применять стили через классы. Утилиты построены с связанными CSS переменными цвета, и поскольку мы настраиваем эти CSS переменные для темного режима, они также адаптивны к цветовому режиму по умолчанию.

Example element with utilities
html
<div class="p-3 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
  Example element with utilities
</div>

Цвета темы

Мы используем подмножество всех цветов для создания меньшей цветовой палитры для генерации цветовых схем, также доступной как переменные Sass и карта Sass в файле scss/_variables.scss Bootstrap.

Primary
Secondary
Success
Danger
Warning
Info
Light
Dark

Все эти цвета доступны как карта Sass, $theme-colors.

$theme-colors: (
  "primary":    $primary,
  "secondary":  $secondary,
  "success":    $success,
  "info":       $info,
  "warning":    $warning,
  "danger":     $danger,
  "light":      $light,
  "dark":       $dark
);

Ознакомьтесь с нашей документацией по картам и циклам Sass о том, как изменить эти цвета.

Все цвета

Все цвета Bootstrap доступны как переменные Sass и карта Sass в файле scss/_variables.scss. Чтобы избежать увеличения размеров файлов, мы не создаем классы цвета текста или фона для каждой из этих переменных. Вместо этого мы выбираем подмножество этих цветов для палитры темы.

Обязательно следите за коэффициентами контрастности при настройке цветов. Как показано ниже, мы добавили три коэффициента контрастности к каждому из основных цветов — один для текущих цветов образца, один для белого и один для черного.

$blue#0d6efd
$blue-100
$blue-200
$blue-300
$blue-400
$blue-500
$blue-600
$blue-700
$blue-800
$blue-900
$indigo#6610f2
$indigo-100
$indigo-200
$indigo-300
$indigo-400
$indigo-500
$indigo-600
$indigo-700
$indigo-800
$indigo-900
$purple#6f42c1
$purple-100
$purple-200
$purple-300
$purple-400
$purple-500
$purple-600
$purple-700
$purple-800
$purple-900
$pink#d63384
$pink-100
$pink-200
$pink-300
$pink-400
$pink-500
$pink-600
$pink-700
$pink-800
$pink-900
$red#dc3545
$red-100
$red-200
$red-300
$red-400
$red-500
$red-600
$red-700
$red-800
$red-900
$orange#fd7e14
$orange-100
$orange-200
$orange-300
$orange-400
$orange-500
$orange-600
$orange-700
$orange-800
$orange-900
$yellow#ffc107
$yellow-100
$yellow-200
$yellow-300
$yellow-400
$yellow-500
$yellow-600
$yellow-700
$yellow-800
$yellow-900
$green#198754
$green-100
$green-200
$green-300
$green-400
$green-500
$green-600
$green-700
$green-800
$green-900
$teal#20c997
$teal-100
$teal-200
$teal-300
$teal-400
$teal-500
$teal-600
$teal-700
$teal-800
$teal-900
$cyan#0dcaf0
$cyan-100
$cyan-200
$cyan-300
$cyan-400
$cyan-500
$cyan-600
$cyan-700
$cyan-800
$cyan-900
$gray-500#adb5bd
$gray-100
$gray-200
$gray-300
$gray-400
$gray-500
$gray-600
$gray-700
$gray-800
$gray-900

$black #000

$white #fff

Заметки о Sass

Sass не может программно генерировать переменные, поэтому мы вручную создали переменные для каждого оттенка и тени. Мы указываем значение средней точки (например, $blue-500) и используем пользовательские цветовые функции для тонирования (осветления) или затенения (затемнения) наших цветов через цветовую функцию mix() Sass.

Использование mix() не то же самое, что lighten() и darken() — первая смешивает указанный цвет с белым или черным, в то время как последние только регулируют значение яркости каждого цвета. Результат — гораздо более полный набор цветов, как показано в этой демонстрации CodePen.

Наши функции tint-color() и shade-color() используют mix() вместе с нашей переменной $theme-color-interval, которая указывает ступенчатое процентное значение для каждого смешанного цвета, который мы производим. См. файлы scss/_functions.scss и scss/_variables.scss для полного исходного кода.

Цветовые карты Sass

Исходные файлы Sass Bootstrap включают три карты, чтобы помочь вам быстро и легко перебирать список цветов и их шестнадцатеричных значений.

  • $colors перечисляет все наши доступные базовые (500) цвета
  • $theme-colors перечисляет все семантически названные цвета темы (показано ниже)
  • $grays перечисляет все оттенки и тени серого

В scss/_variables.scss вы найдете цветовые переменные Bootstrap и карту Sass. Вот пример карты Sass $colors:

$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
);

Добавляйте, удаляйте или изменяйте значения в карте, чтобы обновить, как они используются во многих других компонентах. К сожалению, в настоящее время не каждый компонент использует эту карту Sass. Будущие обновления будут стремиться улучшить это. До тех пор планируйте использовать переменные ${color} и эту карту Sass.

Пример

Вот как вы можете использовать их в вашем Sass:

.alpha { color: $purple; }
.beta {
  color: $yellow-300;
  background-color: $indigo-900;
}

Цветовые и фоновые утилитарные классы также доступны для установки color и background-color, используя цветовые значения 500.

Генерация утилит

Добавлено в v5.1.0

Bootstrap не включает утилиты color и background-color для каждой цветовой переменной, но вы можете сгенерировать их самостоятельно с помощью нашего API утилит и наших расширенных карт Sass, добавленных в v5.1.0.

  1. Для начала убедитесь, что вы импортировали наши функции, переменные, миксины и утилиты.
  2. Используйте нашу функцию map-merge-multiple() для быстрого объединения нескольких карт Sass в новую карту.
  3. Объедините эту новую комбинированную карту для расширения любой утилиты с именем класса {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} для каждого цвета и уровня. Вы можете сделать то же самое для любой другой утилиты и свойства.