颜色
Bootstrap 由广泛的颜色系统支持,该系统以我们的样式和组件为主题。这样可以为任何项目提供更全面的自定义和扩展。
Colors
Added in v5.3.0Bootstrap的调色板在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)
。
Description | Swatch | Variables |
---|---|---|
Body — Default foreground (color) and background, including components. |
|
--bs-body-color --bs-body-color-rgb
|
|
--bs-body-bg --bs-body-bg-rgb
|
|
Secondary — Use the color option for lighter text. Use the bg option for dividers and to indicate disabled component states.
|
|
--bs-secondary-color --bs-secondary-color-rgb
|
|
--bs-secondary-bg --bs-secondary-bg-rgb
|
|
Tertiary — Use the color option for even lighter text. Use the bg option to style backgrounds for hover states, accents, and wells.
|
|
--bs-tertiary-color --bs-tertiary-color-rgb
|
|
--bs-tertiary-bg --bs-tertiary-bg-rgb
|
|
Emphasis — For higher contrast text. Not applicable for backgrounds. |
|
--bs-emphasis-color --bs-emphasis-color-rgb
|
Border — For component borders, dividers, and rules. Use --bs-border-color-translucent to blend with backgrounds with an rgba() value.
|
|
--bs-border-color --bs-border-color-rgb
|
Primary — Main theme color, used for hyperlinks, focus styles, and component and form active states. |
|
--bs-primary --bs-primary-rgb
|
|
--bs-primary-bg-subtle
|
|
|
--bs-primary-border-subtle
|
|
Text
|
--bs-primary-text-emphasis
|
|
Success — Theme color used for positive or successful actions and information. |
|
--bs-success --bs-success-rgb
|
|
--bs-success-bg-subtle
|
|
|
--bs-success-border-subtle
|
|
Text
|
--bs-success-text-emphasis
|
|
Danger — Theme color used for errors and dangerous actions. |
|
--bs-danger --bs-danger-rgb
|
|
--bs-danger-bg-subtle
|
|
|
--bs-danger-border-subtle
|
|
Text
|
--bs-danger-text-emphasis
|
|
Warning — Theme color used for non-destructive warning messages. |
|
--bs-warning --bs-warning-rgb
|
|
--bs-warning-bg-subtle
|
|
|
--bs-warning-border-subtle
|
|
Text
|
--bs-warning-text-emphasis
|
|
Info — Theme color used for neutral and informative content. |
|
--bs-info --bs-info-rgb
|
|
--bs-info-bg-subtle
|
|
|
--bs-info-border-subtle
|
|
Text
|
--bs-info-text-emphasis
|
|
Light — Additional theme option for less contrasting colors. |
|
--bs-light --bs-light-rgb
|
|
--bs-light-bg-subtle
|
|
|
--bs-light-border-subtle
|
|
Text
|
--bs-light-text-emphasis
|
|
Dark — Additional theme option for higher contrasting colors. |
|
--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">
Example element with utilities
</div>
主题颜色
我们使用所有颜色的子集来创建较小的调色板来生成配色方案,也可以作为 Sass 变量和 Bootstrap scss/_variables.scss
文件中的 Sass 映射使用。
所有这些颜色都可以作为 Sass 映射使用,$theme-colors
。
$theme-colors: (
"primary": $primary,
"secondary": $secondary,
"success": $success,
"info": $info,
"warning": $warning,
"danger": $danger,
"light": $light,
"dark": $dark
);
查看我们的Sass映射和loop文档了解如何修改这些颜色。
所有颜色
所有 Bootstrap 颜色都可以作为 Sass 变量和 scss/_variables.scss
文件中的 Sass 映射使用。为了避免文件大小增加,我们不会为每个变量创建文本或背景颜色类。相反,我们为 主题调色板选择这些颜色的子集。
请务必在自定义颜色时监视对比度。如下图所示,我们为每种主要颜色添加了三种对比度 - 一种用于色板的当前颜色,一种用于白色,一种用于黑色。
关于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 映射
Bootstrap的源Sass文件包括三个映射,以帮助您快速轻松地循环颜色列表及其十六进制值。
$colors
列出了我们所有可用的基础(500
)颜色$theme-colors
列出了所有语义命名的主题颜色(如下所示)$grays
列出了所有灰色的色调和阴影
在scss/_variables.scss
中,你可以找到Bootstrap的颜色变量和Sass映射。以下是$colors
Sass 映射的示例:
$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;
}
颜色 和 background 实用程序类也可用于使用500
颜色值设置color
和background-color
。
生成实用程序
Added in v5.1.0Bootstrap 不包括每个颜色变量的color
和background-color
实用程序,但您可以使用我们的 utility API 和我们在 v5.1.0 中添加的扩展 Sass 映射自行生成这些实用程序。
- 首先,请确保您已导入我们的函数、变量、混合和实用程序。
- 使用我们的
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}
实用程序。您也可以对任何其他实用程序和属性执行相同的操作。