Цвета
Цвета
Добавлено в версии 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 }
утилиты для каждого цвета и уровня. То же самое можно сделать и для любой другой утилиты и свойства.