This commit is contained in:
Mark Otto 2025-06-18 09:10:49 -07:00
parent bdcdc684a3
commit 606bc9ffb3
50 changed files with 131 additions and 312 deletions

View File

@ -1,4 +1,7 @@
@use "sass:color";
@use "sass:map";
@use "sass:math";
@use "variables" as *;
// Bootstrap functions
//
@ -24,7 +27,7 @@
// Starts at zero
// Used to ensure the min-width of the lowest breakpoint starts at 0.
@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
@mixin _assert-starts-at-zero($map, $map-name: "$breakpoints") {
@if length($map) > 0 {
$values: map-values($map);
$first-value: nth($values, 1);
@ -176,7 +179,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
$l1: luminance($background);
$l2: luminance(opaque($background, $foreground));
@return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
@return if($l1 > $l2, math.div($l1 + .05, $l2 + .05), math.div($l2 + .05, $l1 + .05));
}
// Return WCAG2.2 relative luminance
@ -190,115 +193,32 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
);
@each $name, $value in $rgb {
$value: if(divide($value, 255) < .04045, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
$rgb: map-merge($rgb, ($name: $value));
$value: if(math.div($value, 255) < .04045, math.div(math.div($value, 255), 12.92), nth($_luminance-list, $value + 1));
$rgb: map.merge($rgb, ($name: $value));
}
@return (map-get($rgb, "r") * .2126) + (map-get($rgb, "g") * .7152) + (map-get($rgb, "b") * .0722);
@return (map.get($rgb, "r") * .2126) + (map.get($rgb, "g") * .7152) + (map.get($rgb, "b") * .0722);
}
// Return opaque color
// opaque(#fff, rgba(0, 0, 0, .5)) => #808080
@function opaque($background, $foreground) {
@return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);
@return color.mix(rgba($foreground, 1), $background, color.opacity($foreground) * 100%);
}
// scss-docs-start color-functions
// Tint a color: mix a color with white
// // Tint a color: mix a color with white
@function tint-color($color, $weight) {
@return mix(white, $color, $weight);
@return color.mix(white, $color, $weight);
}
// Shade a color: mix a color with black
// // Shade a color: mix a color with black
@function shade-color($color, $weight) {
@return mix(black, $color, $weight);
@return color.mix(black, $color, $weight);
}
// Shade the color if the weight is positive, else tint it
// // Shade the color if the weight is positive, else tint it
@function shift-color($color, $weight) {
@return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
}
// scss-docs-end color-functions
// Return valid calc
@function add($value1, $value2, $return-calc: true) {
@if $value1 == null {
@return $value2;
}
@if $value2 == null {
@return $value1;
}
@if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
@return $value1 + $value2;
}
@return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
}
@function subtract($value1, $value2, $return-calc: true) {
@if $value1 == null and $value2 == null {
@return null;
}
@if $value1 == null {
@return -$value2;
}
@if $value2 == null {
@return $value1;
}
@if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
@return $value1 - $value2;
}
@if type-of($value2) != number {
$value2: unquote("(") + $value2 + unquote(")");
}
@return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
}
@function divide($dividend, $divisor, $precision: 10) {
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
$dividend: abs($dividend);
$divisor: abs($divisor);
@if $dividend == 0 {
@return 0;
}
@if $divisor == 0 {
@error "Cannot divide by 0";
}
$remainder: $dividend;
$result: 0;
$factor: 10;
@while ($remainder > 0 and $precision >= 0) {
$quotient: 0;
@while ($remainder >= $divisor) {
$remainder: $remainder - $divisor;
$quotient: $quotient + 1;
}
$result: $result * 10 + $quotient;
$factor: $factor * .1;
$remainder: $remainder * 10;
$precision: $precision - 1;
@if ($precision < 0 and $remainder >= $divisor * 5) {
$result: $result + 1;
}
}
$result: $result * $factor * $sign;
$dividend-unit: unit($dividend);
$divisor-unit: unit($divisor);
$unit-map: (
"px": 1px,
"rem": 1rem,
"em": 1em,
"%": 1%
);
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
$result: $result * map-get($unit-map, $dividend-unit);
}
@return $result;
}

View File

@ -1,4 +1,14 @@
@use "variables" as *;
// scss-docs-start spinner-variables
$spinner-width: 2rem !default;
$spinner-height: $spinner-width !default;
$spinner-vertical-align: -.125em !default;
$spinner-border-width: .25em !default;
$spinner-animation-speed: .75s !default;
$spinner-width-sm: 1rem !default;
$spinner-height-sm: $spinner-width-sm !default;
$spinner-border-width-sm: .2em !default;
// scss-docs-end spinner-variables
//
// Rotating border

View File

@ -1,3 +1,4 @@
@use "sass:color";
@use "colors" as *;
@use "functions" as *;
@ -555,7 +556,8 @@ $btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;
$btn-link-color: var(--#{$prefix}link-color) !default;
$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;
$btn-link-disabled-color: $gray-600 !default;
$btn-link-focus-shadow-rgb: to-rgb(mix(color-contrast($link-color), $link-color, 15%)) !default;
$btn-link-color-contrast: color-contrast($link-color) !default;
$btn-link-focus-shadow-rgb: to-rgb(color.mix($btn-link-color-contrast, $link-color, 15%)) !default;
// Allows for customizing button radius independently from global border radius
$btn-border-radius: var(--#{$prefix}border-radius) !default;
@ -1396,21 +1398,6 @@ $carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Depre
// scss-docs-end carousel-dark-variables
// Spinners
// scss-docs-start spinner-variables
$spinner-width: 2rem !default;
$spinner-height: $spinner-width !default;
$spinner-vertical-align: -.125em !default;
$spinner-border-width: .25em !default;
$spinner-animation-speed: .75s !default;
$spinner-width-sm: 1rem !default;
$spinner-height-sm: $spinner-width-sm !default;
$spinner-border-width-sm: .2em !default;
// scss-docs-end spinner-variables
// Close
// scss-docs-start close-variables
@ -1461,5 +1448,3 @@ $kbd-bg: var(--#{$prefix}body-color) !default;
$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6
$pre-color: null !default;
@import "variables-dark"; // TODO: can be removed safely in v6, only here to avoid breaking changes in v5.3

View File

@ -1,62 +0,0 @@
@import "mixins/banner";
@include bsBanner(Grid);
$include-column-box-sizing: true !default;
@import "functions";
@import "variables";
@import "variables-dark";
@import "maps";
@import "mixins/breakpoints";
@import "mixins/container";
@import "mixins/grid";
@import "mixins/utilities";
@import "vendor/rfs";
@import "containers";
@import "grid";
@import "utilities";
// Only use the utilities we need
// stylelint-disable-next-line scss/dollar-variable-default
$utilities: map-get-multiple(
$utilities,
(
"display",
"order",
"flex",
"flex-direction",
"flex-grow",
"flex-shrink",
"flex-wrap",
"justify-content",
"align-items",
"align-content",
"align-self",
"margin",
"margin-x",
"margin-y",
"margin-top",
"margin-end",
"margin-bottom",
"margin-start",
"negative-margin",
"negative-margin-x",
"negative-margin-y",
"negative-margin-top",
"negative-margin-end",
"negative-margin-bottom",
"negative-margin-start",
"padding",
"padding-x",
"padding-y",
"padding-top",
"padding-end",
"padding-bottom",
"padding-start",
)
);
@import "utilities/api";

View File

@ -1,10 +0,0 @@
@import "mixins/banner";
@include bsBanner(Reboot);
@import "functions";
@import "variables";
@import "variables-dark";
@import "maps";
@import "mixins";
@import "root";
@import "reboot";

View File

@ -1,19 +0,0 @@
@import "mixins/banner";
@include bsBanner(Utilities);
// Configuration
@import "functions";
@import "variables";
@import "variables-dark";
@import "maps";
@import "mixins";
@import "utilities";
// Layout & components
@import "root";
// Helpers
@import "helpers";
// Utilities
@import "utilities/api";

54
scss/bootstrap.scss vendored
View File

@ -9,41 +9,41 @@
@use "root";
// Reboot & Content
@use "content";
// @use "content";
// Layout
@use "layout";
// @use "layout";
// Forms
@use "forms";
// @use "forms";
// Components
@use "accordion";
@use "alert";
@use "badge";
@use "breadcrumb";
@use "buttons";
@use "button-group";
@use "card";
@use "carousel";
@use "close";
@use "dropdown";
@use "list-group";
@use "modal";
@use "nav";
@use "navbar";
@use "offcanvas";
@use "pagination";
@use "placeholders";
@use "popover";
@use "progress";
@use "spinners";
@use "toasts";
@use "tooltip";
@use "transitions";
// @use "accordion";
// @use "alert";
// @use "badge";
// @use "breadcrumb";
// @use "buttons";
// @use "button-group";
// @use "card";
// @use "carousel";
// @use "close";
// @use "dropdown";
// @use "list-group";
// @use "modal";
// @use "nav";
// @use "navbar";
// @use "offcanvas";
// @use "pagination";
// @use "placeholders";
// @use "popover";
// @use "progress";
// @use "spinners";
// @use "toasts";
// @use "tooltip";
// @use "transitions";
// Helpers
@use "helpers";
// @use "helpers";
// Utilities
@use "utilities/api";

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../variables" as *;
@use "../mixins/border-radius" as *;
@use "../mixins/transition" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../variables" as *;
@use "../functions" as *;
@use "../vendor/rfs" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../variables" as *;
@use "../vendor/rfs" as *;
@use "../mixins/border-radius" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../variables" as *;
@use "../mixins/border-radius" as *;
@use "../mixins/box-shadow" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../variables" as *;
@use "../vendor/rfs" as *;
@use "../mixins/border-radius" as *;

View File

@ -1,5 +1,4 @@
@use "sass:map";
@use "../config" as *;
@use "../variables" as *;
@use "../vendor/rfs" as *;
@use "../mixins/border-radius" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../variables" as *;
@use "../vendor/rfs" as *;
@use "../mixins/border-radius" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../colors" as *;
@use "../variables" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../colors" as *;
@use "../variables" as *;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
.focus-ring:focus {
outline: 0;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../variables" as *;
@use "../mixins/transition" as *;
.icon-link {

View File

@ -1,5 +1,4 @@
@use "sass:map";
@use "../config" as *;
@use "../variables" as *;
@use "../layout/breakpoints" as *;

View File

@ -1,11 +1,11 @@
@import "clearfix";
@import "color-bg";
@import "colored-links";
@import "focus-ring";
@import "icon-link";
@import "position";
@import "stacks";
@import "visually-hidden";
@import "stretched-link";
@import "text-truncation";
@import "vr";
@forward "clearfix";
@forward "color-bg";
@forward "colored-links";
@forward "focus-ring";
@forward "icon-link";
@forward "position";
@forward "stacks";
@forward "visually-hidden";
@forward "stretched-link";
@forward "text-truncation";
@forward "vr";

View File

@ -1,6 +1,5 @@
@use "sass:map";
@use "../config" as *;
@use "../variables" as *;
// Breakpoint viewport sizes and media queries.
//

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "breakpoints" as *;
// Container widths

View File

@ -1,5 +1,4 @@
@use "sass:map";
@use "../config" as *;
@use "breakpoints" as *;
// mdo-do

View File

@ -1,3 +1,3 @@
@import "breakpoints";
@import "containers";
@import "grid";
@forward "breakpoints";
@forward "containers";
@forward "grid";

View File

@ -1,4 +1,4 @@
@use "../config" as *;
// @use "../variables" as *;
// stylelint-disable property-disallowed-list
// Single side border-radius

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@mixin box-shadow($shadow...) {
@if $enable-shadows {

View File

@ -1,5 +1,4 @@
@use "../config" as *;
@use "../variables" as *;
// @use "../variables" as *;
// scss-docs-start caret-mixins
@mixin caret-down($width: $caret-width) {

View File

@ -1,4 +1,3 @@
@use "../config" as *;
// scss-docs-start color-mode-mixin
@mixin color-mode($mode: light, $root: false) {

View File

@ -1,4 +1,3 @@
@use "../config" as *;
// Deprecate mixin
//
// This mixin can be used to deprecate mixins or functions.

View File

@ -1,4 +1,3 @@
@use "../config" as *;
@use "../colors" as *;
// Gradients

View File

@ -1,5 +1,4 @@
@use "../config" as *;
@use "../variables" as *;
// @use "../variables" as *;
@mixin reset-text {
font-family: $font-family-base;

View File

@ -1,4 +1,3 @@
@use "../config" as *;
// stylelint-disable property-disallowed-list
@mixin transition($transition...) {

View File

@ -1,5 +1,4 @@
@use "sass:map";
@use "../config" as *;
// Utility generator
// Used to generate utilities & print utilities

View File

@ -1,7 +0,0 @@
// TODO: this file can be removed safely in v6 when `@import "variables-dark"` will be removed at the end of _variables.scss
@import "../../functions";
@import "../../variables";
// Voluntarily not importing _variables-dark.scss
@import "../../maps";
@import "../../mixins";

View File

@ -1,5 +1,4 @@
@use "sass:map";
@use "../config" as *;
@use "../variables" as *;
@use "../vendor/rfs" as *;
@use "../layout/breakpoints" as *;

View File

@ -157,7 +157,7 @@ For both spinners, small spinner modifier classes are used to update the values
### Sass variables
<ScssDocs name="spinner-variables" file="scss/_variables.scss" />
<ScssDocs name="spinner-variables" file="scss/_spinners.scss" />
### Keyframes

View File

@ -1,3 +1,7 @@
@use "../../../scss/layout/breakpoints" as *;
@use "../../../scss/vendor/rfs" as *;
@use "../../../scss/mixins/border-radius" as *;
// stylelint-disable declaration-no-important, selector-max-id
//

View File

@ -1,3 +1,6 @@
@use "../../../scss/variables" as *;
@use "../../../scss/mixins/transition" as *;
.anchor-link {
padding: 0 .175rem;
font-weight: 400;

View File

@ -1,3 +1,6 @@
@use "../../../scss/layout/breakpoints" as *;
@use "../../../scss/mixins/border-radius" as *;
// clipboard.js
//
// JS-based `Copy` buttons for code snippets.

View File

@ -1,3 +1,8 @@
@use "../../../scss/colors" as *;
@use "../../../scss/variables" as *;
@use "../../../scss/vendor/rfs" as *;
@use "../../../scss/layout/breakpoints" as *;
//
// Bootstrap docs content theming
//

View File

@ -125,10 +125,10 @@
}
}
@if $enable-dark-mode {
[data-bs-theme="dark"] {
.masthead-followup-icon {
mix-blend-mode: lighten;
}
}
}
// @if $enable-dark-mode {
// [data-bs-theme="dark"] {
// .masthead-followup-icon {
// mix-blend-mode: lighten;
// }
// }
// }

View File

@ -1,9 +1,10 @@
@use "../../../scss/config" as *;
@use "../../../scss/colors" as *;
@use "../../../scss/functions" as *;
@use "../../../scss/mixins" as *;
@use "../../../scss/variables" as *;
// @use "../../../scss/variables" as *;
@use "../../../scss/layout/breakpoints" as *;
@use "../../../scss/mixins/border-radius" as *;
@use "../../../scss/mixins/color-mode" as *;
@use "../../../scss/mixins/transition" as *;
@use "../../../scss/vendor/rfs" as *;
.bd-navbar {
padding: .75rem 0;

View File

@ -1,3 +1,5 @@
@use "../../../scss/vendor/rfs" as *;
//
// Placeholder svg used in the docs.
//

View File

@ -1,3 +1,7 @@
@use "../../../scss/layout/breakpoints" as *;
@use "../../../scss/mixins/color-mode" as *;
@use "../../../scss/mixins/border-radius" as *;
// stylelint-disable selector-class-pattern
:root {

View File

@ -1,3 +1,7 @@
@use "../../../scss/variables" as *;
@use "../../../scss/layout/breakpoints" as *;
@use "../../../scss/mixins/border-radius" as *;
.bd-sidebar {
@include media-breakpoint-up(lg) {
position: sticky;

View File

@ -1,3 +1,7 @@
@use "../../../scss/colors" as *;
@use "../../../scss/variables" as *;
@use "../../../scss/mixins/color-mode" as *;
:root,
[data-bs-theme="light"] {
// --base00: #fff;

View File

@ -1,3 +1,7 @@
@use "../../../scss/layout/breakpoints" as *;
@use "../../../scss/vendor/rfs" as *;
@use "../../../scss/mixins/border-radius" as *;
// stylelint-disable selector-max-type, selector-no-qualifying-type
.bd-toc {

View File

@ -28,12 +28,12 @@ $bd-callout-variants: info, warning, danger !default;
--bd-pre-bg: var(--bs-tertiary-bg);
}
@include color-mode(dark, true) {
--bd-violet: #{mix($bd-violet, $white, 75%)};
--bd-violet-bg: #{$bd-violet};
--bd-toc-color: var(--#{$prefix}emphasis-color);
--bd-sidebar-link-bg: rgba(#{to-rgb(mix($bd-violet, $black, 75%))}, .5);
--bd-callout-link: #{to-rgb($blue-300)};
--bd-callout-code-color: #{$pink-300};
--bd-pre-bg: #{adjust-color($gray-900, $lightness: -2.5%)}; // stylelint-disable-line scss/at-function-named-arguments
}
// @include color-mode(dark, true) {
// --bd-violet: #{mix($bd-violet, $white, 75%)};
// --bd-violet-bg: #{$bd-violet};
// --bd-toc-color: var(--#{$prefix}emphasis-color);
// --bd-sidebar-link-bg: rgba(#{to-rgb(mix($bd-violet, $black, 75%))}, .5);
// --bd-callout-link: #{to-rgb($blue-300)};
// --bd-callout-code-color: #{$pink-300};
// --bd-pre-bg: #{adjust-color($gray-900, $lightness: -2.5%)}; // stylelint-disable-line scss/at-function-named-arguments
// }

View File

@ -37,7 +37,7 @@
// @use "../../../scss/layout/";
// Load docs components
@use "variables";
// @use "variables";
@use "navbar";
@use "masthead";
@use "ads";

View File

@ -5,13 +5,5 @@
* For details, see https://creativecommons.org/licenses/by/3.0/.
*/
@import "../../../scss/config";
@import "../../../scss/colors";
@import "../../../scss/functions";
@import "../../../scss/mixins";
@import "../../../scss/variables";
@import "../../../scss/layout/breakpoints";
@import "variables";
@import "@docsearch/css/dist/style";
@import "search";
@use "@docsearch/css/dist/style";
@use "search";