1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-10-03 16:51:54 +02:00
Files
bootstrap/site/src/content/docs/utilities/background.mdx
Mark Otto c0f88d638a Remove added badges from docs pages (#41694)
* Remove added badges from docs pages

* Remove AddedIn
2025-09-20 22:15:23 -07:00

136 lines
6.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Background
description: Convey meaning through `background-color` and add decoration with gradients.
toc: true
---
import { getData } from '@libs/data'
<Callout name="warning-color-assistive-technologies" />
## Background color
Similar to the contextual text color classes, set the background of an element to any contextual class. Background utilities **do not set `color`**, so in some cases youll want to use `.text-*` [color utilities]([[docsref:/utilities/colors]]).
<Callout>
Background utilities like `.bg-*` that generated from our original `$theme-colors` Sass map dont yet respond to color modes, however, any `.bg-*-subtle` utility will. This will be resolved in v6.
</Callout>
<Example code={[
...getData('theme-colors').map((themeColor) => `<div class="p-3 mb-2 bg-${themeColor.name} ${themeColor.contrast_color ? `text-${themeColor.contrast_color}` : `text-white`}">.bg-${themeColor.name}</div>
<div class="p-3 mb-2 bg-${themeColor.name}-subtle text-${themeColor.name}-emphasis">.bg-${themeColor.name}-subtle</div>`),
`<div class="p-3 mb-2 bg-body-secondary">.bg-body-secondary</div>
<div class="p-3 mb-2 bg-body-tertiary">.bg-body-tertiary</div>
<div class="p-3 mb-2 bg-body text-body">.bg-body</div>
<div class="p-3 mb-2 bg-black text-white">.bg-black</div>
<div class="p-3 mb-2 bg-white text-dark">.bg-white</div>
<div class="p-3 mb-2 bg-transparent text-body">.bg-transparent</div>`
]} />
## Background gradient
By adding a `.bg-gradient` class, a linear gradient is added as background image to the backgrounds. This gradient starts with a semi-transparent white which fades out to the bottom.
Do you need a gradient in your custom CSS? Just add `background-image: var(--bs-gradient);`.
{getData('theme-colors').map((themeColor) => {
return (
<div class={`p-3 mb-2 bg-${themeColor.name} bg-gradient${themeColor.contrast_color ? (' text-' + themeColor.contrast_color) : ' text-white'}`}>.bg-{themeColor.name}.bg-gradient</div>
)
})}
<div class="p-3 mb-2 bg-black bg-gradient text-white">.bg-black.bg-gradient</div>
## Opacity
As of v5.1.0, `background-color` utilities are generated with Sass using CSS variables. This allows for real-time color changes without compilation and dynamic alpha transparency changes.
### How it works
Consider our default `.bg-success` utility.
```css
.bg-success {
--bs-bg-opacity: 1;
background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
}
```
We use an RGB version of our `--bs-success` (with the value of `25, 135, 84`) CSS variable and attached a second CSS variable, `--bs-bg-opacity`, for the alpha transparency (with a default value `1` thanks to a local CSS variable). That means anytime you use `.bg-success` now, your computed `color` value is `rgba(25, 135, 84, 1)`. The local CSS variable inside each `.bg-*` class avoids inheritance issues so nested instances of the utilities dont automatically have a modified alpha transparency.
### Example
To change that opacity, override `--bs-bg-opacity` via custom styles or inline styles.
<Example code={`<div class="bg-success p-2 text-white">This is default success background</div>
<div class="bg-success p-2" style="--bs-bg-opacity: .5;">This is 50% opacity success background</div>`} />
Or, choose from any of the `.bg-opacity` utilities:
<Example code={`<div class="bg-success p-2 text-white">This is default success background</div>
<div class="bg-success p-2 text-white bg-opacity-75">This is 75% opacity success background</div>
<div class="bg-success p-2 text-dark bg-opacity-50">This is 50% opacity success background</div>
<div class="bg-success p-2 text-dark bg-opacity-25">This is 25% opacity success background</div>
<div class="bg-success p-2 text-dark bg-opacity-10">This is 10% opacity success background</div>`} />
## CSS
In addition to the following Sass functionality, consider reading about our included [CSS custom properties]([[docsref:/customize/css-variables]]) (aka CSS variables) for colors and more.
### Sass variables
Most `background-color` utilities are generated by our theme colors, reassigned from our generic color palette variables.
<ScssDocs name="color-variables" file="scss/_variables.scss" />
<ScssDocs name="theme-color-variables" file="scss/_variables.scss" />
<ScssDocs name="variable-gradient" file="scss/_variables.scss" />
Grayscale colors are also available, but only a subset are used to generate any utilities.
<ScssDocs name="gray-color-variables" file="scss/_variables.scss" />
Variables for setting `background-color` in `.bg-*-subtle` utilities in light and dark mode:
<ScssDocs name="theme-bg-subtle-variables" file="scss/_variables.scss" />
<ScssDocs name="theme-bg-subtle-dark-variables" file="scss/_variables-dark.scss" />
### Sass maps
Theme colors are then put into a Sass map so we can loop over them to generate our utilities, component modifiers, and more.
<ScssDocs name="theme-colors-map" file="scss/_variables.scss" />
Grayscale colors are also available as a Sass map. **This map is not used to generate any utilities.**
<ScssDocs name="gray-colors-map" file="scss/_variables.scss" />
RGB colors are generated from a separate Sass map:
<ScssDocs name="theme-colors-rgb" file="scss/_maps.scss" />
Background color opacities build on that with their own map thats consumed by the utilities API:
<ScssDocs name="utilities-bg-colors" file="scss/_maps.scss" />
Color mode background colors are also available as a Sass map:
<ScssDocs name="theme-bg-subtle-map" file="scss/_maps.scss" />
<ScssDocs name="theme-bg-subtle-dark-map" file="scss/_maps.scss" />
### Sass mixins
**No mixins are used to generate our background utilities**, but we do have some additional mixins for other situations where youd like to create your own gradients.
<ScssDocs name="gradient-bg-mixin" file="scss/mixins/_gradients.scss" />
<ScssDocs name="gradient-mixins" file="scss/mixins/_gradients.scss" />
### Sass utilities API
Background utilities are declared in our utilities API in `scss/_utilities.scss`. [Learn how to use the utilities API.]([[docsref:/utilities/api#using-the-api]])
<ScssDocs name="utils-bg-color" file="scss/_utilities.scss" />