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

Цвет

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

Цвета

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

Цветовая палитра Bootstrap продолжает расширяться и становится более гибкой в версии 5.3.0. Мы добавили новые переменные для вторичных (secondary) и третичных (tertiary) цветов текста и фона, а также {color}-bg-subtle, {color}-border-subtle и {color}-text для наших тематических цветов. Эти новые цвета доступны через переменные Sass и CSS (но не через наши карты цветов или утилитарные классы) с целью облегчить настройку для различных цветовых режимов, таких как светлый и темный. Эти новые переменные глобально задаются на :root и адаптированы для нового темного режима, в то время как наши исходные тематические цвета остаются без изменений.

Цвета, заканчивающиеся на -rgb, предоставляют значения red, green, blue для использования в цветовых режимах rgb() и rgba(). Например, rgba(var(--bs-secondary-bg-rgb), .5).

Внимание! Возможна путаница с нашими новыми вторичными и третичными цветами, а также с существующим вторичным тематическим цветом, а также с нашими светлыми и темными тематическими цветами. Ожидайте, что это будет доработано в v6.
Описание Образец Переменные
Основной — Цвет текста и фона по умолчанию, включая компоненты.
 
--bs-body-color
--bs-body-color-rgb
 
--bs-body-bg
--bs-body-bg-rgb
Вторичный — Используйте опцию color для более светлого текста. Используйте опцию bg для разделителей и для обозначения неактивных состояний компонентов.
 
--bs-secondary-color
--bs-secondary-color-rgb
 
--bs-secondary-bg
--bs-secondary-bg-rgb
Третичный — Используйте опцию color для еще более светлого текста. Используйте опцию bg для фонов состояний наведения, акцентов и областей.
 
--bs-tertiary-color
--bs-tertiary-color-rgb
 
--bs-tertiary-bg
--bs-tertiary-bg-rgb
Акцент — Для текста с более высоким контрастом. Не применяется к фонам.
 
--bs-emphasis-color
--bs-emphasis-color-rgb
Граница — Для границ компонентов, разделителей и линий. Используйте --bs-border-color-translucent для смешивания с фоном с помощью значения rgba().
 
--bs-border-color
--bs-border-color-rgb
Основной — Главный цвет темы, используется для гиперссылок, стилей фокуса, активных состояний компонентов и форм.
Primary
--bs-primary
--bs-primary-rgb
Фон (subtle)
--bs-primary-bg-subtle
Граница (subtle)
--bs-primary-border-subtle
Текст
--bs-primary-text
Успех — Цвет темы, используемый для положительных или успешных действий и информации.
Success
--bs-success
--bs-success-rgb
Фон (subtle)
--bs-success-bg-subtle
Граница (subtle)
--bs-success-border-subtle
Текст
--bs-success-text
Опасность — Цвет темы, используемый для ошибок и опасных действий.
Danger
--bs-danger
--bs-danger-rgb
Фон (subtle)
--bs-danger-bg-subtle
Граница (subtle)
--bs-danger-border-subtle
Текст
--bs-danger-text
Предупреждение — Цвет темы, используемый для неразрушающих предупреждающих сообщений.
Warning
--bs-warning
--bs-warning-rgb
Фон (subtle)
--bs-warning-bg-subtle
Граница (subtle)
--bs-warning-border-subtle
Текст
--bs-warning-text
Информация — Цвет темы, используемый для нейтрального и информативного контента.
Info
--bs-info
--bs-info-rgb
Фон (subtle)
--bs-info-bg-subtle
Граница (subtle)
--bs-info-border-subtle
Текст
--bs-info-text
Светлый — Дополнительная опция темы для менее контрастных цветов.
Light
--bs-light
--bs-light-rgb
Фон (subtle)
--bs-light-bg-subtle
Граница (subtle)
--bs-light-border-subtle
Текст
--bs-light-text
Темный — Дополнительная опция темы для более контрастных цветов.
Dark
--bs-dark
--bs-dark-rgb
Фон (subtle)
--bs-dark-bg-subtle
Граница (subtle)
--bs-dark-border-subtle
Текст
--bs-dark-text

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

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

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

Тематические цвета

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

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) и используем пользовательские цветовые функции для осветления (tint) или затемнения (shade) наших цветов с помощью функции 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. Вот пример карты 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.

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

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

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