颜色
Bootstrap 由广泛的颜色系统支持,该系统以我们的样式和组件为主题。这可以为任何项目实现更全面的定制和扩展。
颜色
添加于 v5.3.0Bootstrap 的调色板在 v5.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)。
| 描述 | Swatch | 变量 | 
|---|---|---|
| 主体 —默认前景(颜色)和背景,包括组件。 | 
         | 
      
        --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 —主要主题颜色,用于超链接、焦点样式以及组件和表单活动状态。 | 
         Primary 
       | 
      
        --bs-primary--bs-primary-rgb
       | 
    
| 
         Background subtle 
       | 
      
        --bs-primary-bg-subtle
       | 
    |
| 
         Border subtle 
       | 
      
        --bs-primary-border-subtle
       | 
    |
| 
         Text 
       | 
      
        --bs-primary-text
       | 
    |
| 成功——用于积极或成功的行动和信息的主题颜色。 | 
         Success 
       | 
      
        --bs-success--bs-success-rgb
       | 
    
| 
         Background subtle 
       | 
      
        --bs-success-bg-subtle
       | 
    |
| 
         Border subtle 
       | 
      
        --bs-success-border-subtle
       | 
    |
| 
         Text 
       | 
      
        --bs-success-text
       | 
    |
| 危险——用于错误和危险行为的主题颜色。 | 
         Danger 
       | 
      
        --bs-danger--bs-danger-rgb
       | 
    
| 
         Background subtle 
       | 
      
        --bs-danger-bg-subtle
       | 
    |
| 
         Border subtle 
       | 
      
        --bs-danger-border-subtle
       | 
    |
| 
         Text 
       | 
      
        --bs-danger-text
       | 
    |
| 警告 -用于非破坏性警告消息的主题颜色。 | 
         Warning 
       | 
      
        --bs-warning--bs-warning-rgb
       | 
    
| 
         Background subtle 
       | 
      
        --bs-warning-bg-subtle
       | 
    |
| 
         Border subtle 
       | 
      
        --bs-warning-border-subtle
       | 
    |
| 
         文本 
       | 
      
        --bs-warning-text
       | 
    |
| 信息——用于中性和信息性内容的主题颜色。 | 
         Info 
       | 
      
        --bs-info--bs-info-rgb
       | 
    
| 
         Background subtle 
       | 
      
        --bs-info-bg-subtle
       | 
    |
| 
         Border subtle 
       | 
      
        --bs-info-border-subtle
       | 
    |
| 
         文本 
       | 
      
        --bs-info-text
       | 
    |
| 浅色 —用于对比度较低的颜色的附加主题选项。 | 
         Light 
       | 
      
        --bs-light--bs-light-rgb
       | 
    
| 
         Background subtle 
       | 
      
        --bs-light-bg-subtle
       | 
    |
| 
         Border subtle 
       | 
      
        --bs-light-border-subtle
       | 
    |
| 
         Text 
       | 
      
        --bs-light-text
       | 
    |
| 深色 -用于更高对比度颜色的附加主题选项。 | 
         Dark 
       | 
      
        --bs-dark--bs-dark-rgb
       | 
    
| 
         Background subtle 
       | 
      
        --bs-dark-bg-subtle
       | 
    |
| 
         Border subtle 
       | 
      
        --bs-dark-border-subtle
       | 
    |
| 
         Text 
       | 
      
        --bs-dark-text
       | 
    
使用新颜色
这些新颜色可通过 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>主题颜色
我们使用所有颜色的子集来创建一个较小的调色板来生成配色方案,也可以在 Bootstrapscss/_variables.scss文件中用作 Sass 变量和 Sass 映射。
所有这些颜色都可以作为 Sass 映射,$theme-colors.
$theme-colors: (
  "primary":    $primary,
  "secondary":  $secondary,
  "success":    $success,
  "info":       $info,
  "warning":    $warning,
  "danger":     $danger,
  "light":      $light,
  "dark":       $dark
);
查看我们的 Sass 映射和循环文档,了解如何修改这些颜色。
所有颜色
所有 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;
}
颜色和背景实用程序类也可用于设置color和background-color使用500颜色值。
生成实用程序
添加于 v5.1.0Bootstrap 不包含每个颜色变量color的background-color实用程序,但您可以使用我们的实用程序 API和 v5.1.0 中添加的扩展 Sass 映射自行生成这些。
- 首先,确保您已经导入了我们的函数、变量、mixin 和实用程序。
 - 使用我们的
map-merge-multiple()函数将多个 Sass 映射快速合并到一个新映射中。 - 合并这个新的组合映射以扩展具有
{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}这将为每种颜色和级别生成新的实用程序。您也可以对任何其他实用程序和属性执行相同的操作。