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