Цвета

Bootstrap поддерживается обширной цветовой системой, которая тематизирует стили и компоненты. Это обеспечивает более полную настройку и расширение для любого проекта.

Цвета

Добавлено в версии 5.3.0

Цветовая палитра Bootstrap продолжала расширяться и стала более детализированной в версии 5.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).

Внимание! Возможна некоторая путаница с нашими новыми дополнительными и третичными цветами, а также с нашим существующим дополнительным цветом темы, а также со светлыми и темными цветами темы. Ожидайте, что это будет исправлено в версии 6.
Описание Образец Переменная
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 — для смешивания с фоном со значением 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-переменные для темного режима, они также адаптивны к цветовому режиму по умолчанию.

<div class="p-3 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
  Пример элемента с утилитами
</div>
Результат:
Пример элемента с утилитами


Цвета темы

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

Основной
Вторичный
Успех
Опасность
Предупреждение
Информация
Светлый
Темный

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

scss/_variables.scss:

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

 

Ознакомьтесь с нашими документами Sass maps и loops, чтобы узнать, как изменить эти цвета.

Все цвета

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

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

$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) и используем пользовательские функции цвета, чтобы подкрасить (осветлить) или затемнить (затемнить затемнение) наши цвета с помощью функции цвета Sass mix().

Использование 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. Вот пример $colors карты Sass:

scss/_variables.scss:

$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 background500.

Утилиты для создания

Добавлено в версии 5.1.0

Bootstrap не включает в себя утилиты color и background-color для каждой переменной цвета, но вы можете сгенерировать их самостоятельно с помощью нашего utility API и наших расширенных карт Sass, добавленных в версии 5.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 } утилиты для каждого цвета и уровня. То же самое можно сделать и для любой другой утилиты и свойства.