diff --git a/site/src/assets/examples/album/index.astro b/site/src/assets/examples/album/index.astro
index 9b5279302a..204062c52a 100644
--- a/site/src/assets/examples/album/index.astro
+++ b/site/src/assets/examples/album/index.astro
@@ -205,6 +205,6 @@ import Placeholder from "@shortcodes/Placeholder.astro"
Back to top
`} />
@@ -155,15 +155,15 @@ Add badges to any list group item to show unread counts, activity, and more with
A list item
- 14
+ 14
A second list item
- 2
+ 2
A third list item
- 1
+ 1
`} />
diff --git a/site/src/content/docs/components/progress.mdx b/site/src/content/docs/components/progress.mdx
index 264c06b602..5f52ede00a 100644
--- a/site/src/content/docs/components/progress.mdx
+++ b/site/src/content/docs/components/progress.mdx
@@ -90,19 +90,19 @@ Use background utility classes to change the appearance of individual progress b
-If youâre adding labels to progress bars with a custom background color, make sure to also set an appropriate [text color]([[docsref:/utilities/colors#colors]]), so the labels remain readable and have sufficient contrast. We recommend using the [color and background]([[docsref:/helpers/color-background]]) helper classes.
+If youâre adding labels to progress bars with a custom background color, make sure to also set an appropriate [text color]([[docsref:/utilities/colors#colors]]), so the labels remain readable and have sufficient contrast. We recommend using the [theme contrast]([[docsref:/utilities/theme#contrast]]) helper classes.
-
25%
+
25%
-
50%
+
50%
-
75%
+
75%
-
100%
+
100%
`} />
## Multiple bars
diff --git a/site/src/content/docs/customize/color-modes.mdx b/site/src/content/docs/customize/color-modes.mdx
index 74cb60f353..77b4a60d0a 100644
--- a/site/src/content/docs/customize/color-modes.mdx
+++ b/site/src/content/docs/customize/color-modes.mdx
@@ -67,7 +67,7 @@ For example, to change the color mode of a dropdown menu, add `data-bs-theme="li
### Enable dark mode
-Enable the built in dark color mode across your entire project by adding the `data-bs-theme="dark"` attribute to the `` element. This will apply the dark color mode to all components and elements, other than those with a specific `data-bs-theme` attribute applied. Building on the [quick start template]([[docsref:/getting-started/introduction#quick-start]]):
+Enable the built in dark color mode across your entire project by adding the `data-bs-theme="dark"` attribute to the `` element. This will apply the dark color mode to all components and elements, other than those with a specific `data-bs-theme` attribute applied. Building on the [quick start template]([[docsref:/guides/quickstart/]]):
```html
diff --git a/site/src/content/docs/customize/overview.mdx b/site/src/content/docs/customize/overview.mdx
index cf4289dbe2..b6566e8132 100644
--- a/site/src/content/docs/customize/overview.mdx
+++ b/site/src/content/docs/customize/overview.mdx
@@ -33,7 +33,7 @@ Our two preferred methods are:
While we cannot go into details here on how to use every package manager, we can give some guidance on [using Bootstrap with your own Sass compiler]([[docsref:/customize/sass]]).
-For those who want to use the distribution files, review the [getting started page]([[docsref:/getting-started/introduction]]) for how to include those files and an example HTML page. From there, consult the docs for the layout, components, and behaviors youâd like to use.
+For those who want to use the distribution files, review the [getting started page]([[docsref:/guides/quickstart]]) for how to include those files and an example HTML page. From there, consult the docs for the layout, components, and behaviors youâd like to use.
As you familiarize yourself with Bootstrap, continue exploring this section for more details on how to utilize our global options, making use of and changing our color system, how we build our components, how to use our growing list of CSS custom properties, and how to optimize your code when building with Bootstrap.
diff --git a/site/src/content/docs/getting-started/approach.mdx b/site/src/content/docs/getting-started/approach.mdx
index 9ceea05f34..9215bc635d 100644
--- a/site/src/content/docs/getting-started/approach.mdx
+++ b/site/src/content/docs/getting-started/approach.mdx
@@ -41,7 +41,7 @@ Bootstrap is developed *mobile first*, a strategy in which we optimize code for
```
-You can see an example of this in action in [the quick start]([[docsref:/getting-started/introduction#quick-start]]).
+You can see an example of this in action in [the quick start]([[docsref:/guides/quickstart/]]).
### Box-sizing
diff --git a/site/src/content/docs/getting-started/install.mdx b/site/src/content/docs/getting-started/install.mdx
index ace55374ee..9d326a768c 100644
--- a/site/src/content/docs/getting-started/install.mdx
+++ b/site/src/content/docs/getting-started/install.mdx
@@ -2,6 +2,10 @@
title: Install Bootstrap
description: Add Bootstrap to your project with CDN, package manager, or source files.
toc: true
+aliases:
+ - "/docs/[[config:docs_version]]/getting-started/"
+ - "/docs/getting-started/"
+ - "/getting-started/"
---
## Install
diff --git a/site/src/content/docs/getting-started/introduction.mdx b/site/src/content/docs/getting-started/introduction.mdx
deleted file mode 100644
index 99a67985eb..0000000000
--- a/site/src/content/docs/getting-started/introduction.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Basics of Bootstrap
-description: Bootstrap is a powerful, feature-packed frontend toolkit. Build anythingâfrom prototype to productionâin minutes.
-aliases:
- - "/docs/[[config:docs_version]]/getting-started/"
- - "/docs/getting-started/"
- - "/getting-started/"
-toc: true
----
diff --git a/site/src/content/docs/getting-started/rtl.mdx b/site/src/content/docs/getting-started/rtl.mdx
index 4714fe4ec7..7822a6be42 100644
--- a/site/src/content/docs/getting-started/rtl.mdx
+++ b/site/src/content/docs/getting-started/rtl.mdx
@@ -5,7 +5,7 @@ toc: true
---
- **ProTip:** Get familiar with Bootstrap first with our [getting started guide]([[docsref:/getting-started/introduction]]) before working with RTL.
+ **ProTip:** Get familiar with Bootstrap first with our [getting started guide]([[docsref:/getting-started/]]) before working with RTL.
## How it works
diff --git a/site/src/content/docs/guides/npm.mdx b/site/src/content/docs/guides/npm.mdx
index 9639e9ed2d..4fe2a720d2 100644
--- a/site/src/content/docs/guides/npm.mdx
+++ b/site/src/content/docs/guides/npm.mdx
@@ -5,7 +5,7 @@ toc: true
thumbnail: guides/bootstrap-npm@2x.png
---
-
+
**Want to skip to the end?** Download the source code and working demo for this guide from the [twbs/examples repository](https://github.com/twbs/examples/tree/sass-js/). You can also [open the example in StackBlitz](https://stackblitz.com/github/twbs/examples/tree/main/sass-js?file=index.html).
diff --git a/site/src/content/docs/guides/quickstart.mdx b/site/src/content/docs/guides/quickstart.mdx
index f9e86ba7ef..f029999dbf 100644
--- a/site/src/content/docs/guides/quickstart.mdx
+++ b/site/src/content/docs/guides/quickstart.mdx
@@ -9,8 +9,6 @@ Get started using Bootstrap in seconds by including our production-ready CSS and
**Got the gist already?** See the end result in this [Bootstrap CodePen demo](https://codepen.io/team/bootstrap/pen/qBamdLj).
-
-
1. **Create a new `index.html` file in your project root.** Include the `` tag as well for [proper responsive behavior](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta/name/viewport) in mobile devices.
```html
diff --git a/site/src/content/docs/helpers/color-background.mdx b/site/src/content/docs/helpers/color-background.mdx
deleted file mode 100644
index fa62d3fcae..0000000000
--- a/site/src/content/docs/helpers/color-background.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Color and background
-description: Set a background color with contrasting foreground color.
-toc: true
----
-
-import { getData } from '@libs/data'
-
-## Overview
-
-Color and background helpers combine the power of our [`.text-*` utilities]([[docsref:/utilities/colors]]) and [`.bg-*` utilities]([[docsref:/utilities/background]]) in one class. Using our Sass `color-contrast()` function, we automatically determine a contrasting `color` for a particular `background-color`.
-
-
-**Heads up!** Thereâs currently no support for a CSS-native `color-contrast` function, so we use our own via Sass. This means that customizing our theme colors via CSS variables may cause color contrast issues with these utilities.
-
-
- `
${themeColor.title} with contrasting color
`)} />
-
-
-
-## With components
-
-Use them in place of combined `.text-*` and `.bg-*` classes, like on [badges]([[docsref:/components/badge#background-colors]]):
-
-Primary
-Info`} />
-
-Or on [cards]([[docsref:/components/card#background-and-color]]):
-
-
-
Header
-
-
Some quick example text to build on the card title and make up the bulk of the cardâs content.
-
-
-
-
Header
-
-
Some quick example text to build on the card title and make up the bulk of the cardâs content.
-
-
`} />
diff --git a/site/src/content/docs/utilities/background.mdx b/site/src/content/docs/utilities/background.mdx
index 556a38b8d3..1da4f86662 100644
--- a/site/src/content/docs/utilities/background.mdx
+++ b/site/src/content/docs/utilities/background.mdx
@@ -50,12 +50,10 @@ By adding a `.bg-gradient` class, a linear gradient is added as background image
Do you need a gradient in your custom CSS? Just add `background-image: var(--bs-gradient);`.
-{getData('theme-colors').map((themeColor) => {
- return (
-
.bg-{themeColor.name}.bg-gradient
- )
-})}
-
.bg-black.bg-gradient
+ `
.bg-${themeColor.name}.bg-gradient
`),
+ `
.bg-black.bg-gradient
`
+]} />
## Opacity
diff --git a/site/src/content/docs/utilities/colors.mdx b/site/src/content/docs/utilities/colors.mdx
index 9a50bbab57..b2165d1968 100644
--- a/site/src/content/docs/utilities/colors.mdx
+++ b/site/src/content/docs/utilities/colors.mdx
@@ -59,6 +59,38 @@ Change the opacity of a text color by using any of the `.fg-` utilit
This is 20% opacity primary text
This is 10% opacity primary text
`} />
+## Contrast colors
+
+Change the contrast color of a text or link with `.fg-contrast-{color}`. This will set the `--bs-fg` variable to the themeâs `contrast` key color.
+```css
+.fg-contrast-primary {
+ --bs-fg: var(--bs-white);
+ color: var(--bs-fg);
+}
+```
+
+.fg-contrast-primary
+
.fg-contrast-accent
+
.fg-contrast-success
+
.fg-contrast-danger
+
.fg-contrast-warning
+
.fg-contrast-info
+
.fg-contrast-inverse
+
.fg-contrast-secondary
`} />
+
+These even mix with the opacity utilities.
+
+.fg-contrast-primary fg-100
+
.fg-contrast-primary fg-90
+
.fg-contrast-primary fg-80
+
.fg-contrast-primary fg-70
+
.fg-contrast-primary fg-60
+
.fg-contrast-primary fg-50
+
.fg-contrast-primary fg-40
+
.fg-contrast-primary fg-30
+
.fg-contrast-primary fg-20
+
.fg-contrast-primary fg-10
`} />
+
## Reset color
Reset a text or link's color with `.text-reset`, so that it inherits the color from its parent.
diff --git a/site/src/content/docs/utilities/position.mdx b/site/src/content/docs/utilities/position.mdx
index 7426030253..1b6f904491 100644
--- a/site/src/content/docs/utilities/position.mdx
+++ b/site/src/content/docs/utilities/position.mdx
@@ -88,15 +88,15 @@ By adding `.translate-middle-x` or `.translate-middle-y` classes, elements can b
Here are some real life examples of these classes:
- Mails +99 unread messages
+ Mails +99 unread messages
-
- Marker
+
+ Marker
`} />
You can use these classes with existing components to create new ones. Remember that you can extend its functionality by adding entries to the `$position-values` variable.
@@ -105,9 +105,9 @@ You can use these classes with existing components to create new ones. Remember
-
-
-
+
+
+
`} />
## CSS
diff --git a/site/src/content/docs/utilities/theme.mdx b/site/src/content/docs/utilities/theme.mdx
new file mode 100644
index 0000000000..59c42b3946
--- /dev/null
+++ b/site/src/content/docs/utilities/theme.mdx
@@ -0,0 +1,108 @@
+---
+title: Theme
+description: Combine one of three theme utilities with our theme color classes to set `color` and `background-color` pairings on any element, just like component variants.
+toc: true
+utility:
+ - theme-contrast
+ - theme-subtle
+ - theme-muted
+ - theme-border
+---
+
+import { getData } from '@libs/data'
+
+## Overview
+
+Take any of our theme color classes and add `.theme-contrast`, `.theme-subtle`, or `.theme-muted` to set a predefined `color and `background-color` pairing. Then optionally add `.theme-border` to set a predefined border color. For more information on how theme colors work, see the [Theme documentation]([[docsref:/customize/theme]]) in our Customize section.
+
+### Contrast
+
+Contrast pairs the `bg` theme token with the `contrast` text color for maximum readability. This is ideal for high-emphasis elements with solid backgrounds.
+
+ `
.theme-${themeColor.name} .theme-contrast
`)} />
+
+### Subtle
+
+Subtle pairs the `bg-subtle` theme token with the `text` text color for a lower-contrast, more subtle appearance. This combination will automatically adjust to the current color mode.
+
+ `
.theme-${themeColor.name} .theme-subtle
`)} />
+
+And with borders:
+
+ `
.theme-${themeColor.name} .theme-subtle
`)} />
+
+### Muted
+
+Muted pairs the `bg-muted` theme token with the `text-emphasis` text color for a lower-contrast, more muted appearance. Like subtle, this combination will automatically adjust to the current color mode.
+
+ `
.theme-${themeColor.name} .theme-muted
`)} />
+
+And with borders:
+
+ `
.theme-${themeColor.name} .theme-muted
`)} />
+
+## Comparison
+
+Here's a side-by-side comparison of all three styles for each theme color:
+
+ `
+
${themeColor.title} contrast
+
${themeColor.title} subtle
+
${themeColor.title} muted
+
`)} />
+
+## With components
+
+Theme utilities work great with components that support theming. Apply the theme color to a container and use theme style classes on individual elements.
+
+
+
+ Contrast badge
+ Subtle badge
+ Muted badge
+
+
+
+
+ Contrast badge
+ Subtle badge
+ Muted badge
+
+
`} />
+
+You can also mix theme colors within the same container by applying different `.theme-{color}` classes to child elements:
+
+
+