diff --git a/scss/_accordion.scss b/scss/_accordion.scss index 98de068484..fab27c7429 100644 --- a/scss/_accordion.scss +++ b/scss/_accordion.scss @@ -1,4 +1,11 @@ @use "config" as *; +@use "variables" as *; +@use "functions" as *; +@use "vendor/rfs" as *; +@use "mixins/border-radius" as *; +@use "mixins/transition" as *; +@use "mixins/box-shadow" as *; +@use "mixins/color-mode" as *; // // Base styles diff --git a/scss/_alert.scss b/scss/_alert.scss index 4c63f5c6c0..9793b4846a 100644 --- a/scss/_alert.scss +++ b/scss/_alert.scss @@ -1,4 +1,6 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; // // Base styles diff --git a/scss/_badge.scss b/scss/_badge.scss index 161b0a5fef..0abaff6523 100644 --- a/scss/_badge.scss +++ b/scss/_badge.scss @@ -1,4 +1,8 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/gradients" as *; +@use "vendor/rfs" as *; // Base class // diff --git a/scss/_breadcrumb.scss b/scss/_breadcrumb.scss index 53b0b2cc87..27e1905305 100644 --- a/scss/_breadcrumb.scss +++ b/scss/_breadcrumb.scss @@ -1,4 +1,7 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "vendor/rfs" as *; .breadcrumb { // scss-docs-start breadcrumb-css-vars diff --git a/scss/_button-group.scss b/scss/_button-group.scss index 91cc1065ac..04b4c68272 100644 --- a/scss/_button-group.scss +++ b/scss/_button-group.scss @@ -1,4 +1,7 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; // Make the div behave like a button .btn-group, diff --git a/scss/_buttons.scss b/scss/_buttons.scss index 382635d815..34f08cb55a 100644 --- a/scss/_buttons.scss +++ b/scss/_buttons.scss @@ -1,4 +1,84 @@ @use "config" as *; +@use "colors" as *; +@use "variables" as *; +@use "functions" as *; +@use "vendor/rfs" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; +@use "mixins/transition" as *; +@use "mixins/gradients" as *; + +// Button variants +// +// Easily pump out default styles, as well as :hover, :focus, :active, +// and disabled options for all buttons + +// scss-docs-start btn-variant-mixin +@mixin button-variant( + $background, + $border, + $color: color-contrast($background), + $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)), + $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)), + $hover-color: color-contrast($hover-background), + $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)), + $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)), + $active-color: color-contrast($active-background), + $disabled-background: $background, + $disabled-border: $border, + $disabled-color: color-contrast($disabled-background) +) { + --#{$prefix}btn-color: #{$color}; + --#{$prefix}btn-bg: #{$background}; + --#{$prefix}btn-border-color: #{$border}; + --#{$prefix}btn-hover-color: #{$hover-color}; + --#{$prefix}btn-hover-bg: #{$hover-background}; + --#{$prefix}btn-hover-border-color: #{$hover-border}; + --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))}; + --#{$prefix}btn-active-color: #{$active-color}; + --#{$prefix}btn-active-bg: #{$active-background}; + --#{$prefix}btn-active-border-color: #{$active-border}; + --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; + --#{$prefix}btn-disabled-color: #{$disabled-color}; + --#{$prefix}btn-disabled-bg: #{$disabled-background}; + --#{$prefix}btn-disabled-border-color: #{$disabled-border}; +} +// scss-docs-end btn-variant-mixin + +// scss-docs-start btn-outline-variant-mixin +@mixin button-outline-variant( + $color, + $color-hover: color-contrast($color), + $active-background: $color, + $active-border: $color, + $active-color: color-contrast($active-background) +) { + --#{$prefix}btn-color: #{$color}; + --#{$prefix}btn-border-color: #{$color}; + --#{$prefix}btn-hover-color: #{$color-hover}; + --#{$prefix}btn-hover-bg: #{$active-background}; + --#{$prefix}btn-hover-border-color: #{$active-border}; + --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)}; + --#{$prefix}btn-active-color: #{$active-color}; + --#{$prefix}btn-active-bg: #{$active-background}; + --#{$prefix}btn-active-border-color: #{$active-border}; + --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; + --#{$prefix}btn-disabled-color: #{$color}; + --#{$prefix}btn-disabled-bg: transparent; + --#{$prefix}btn-disabled-border-color: #{$color}; + --#{$prefix}gradient: none; +} +// scss-docs-end btn-outline-variant-mixin + +// scss-docs-start btn-size-mixin +@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) { + --#{$prefix}btn-padding-y: #{$padding-y}; + --#{$prefix}btn-padding-x: #{$padding-x}; + @include rfs($font-size, --#{$prefix}btn-font-size); + --#{$prefix}btn-border-radius: #{$border-radius}; +} +// scss-docs-end btn-size-mixin + // // Base styles diff --git a/scss/_card.scss b/scss/_card.scss index 459af6b2d6..fd937a5ede 100644 --- a/scss/_card.scss +++ b/scss/_card.scss @@ -1,4 +1,8 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; +@use "layout/breakpoints" as *; // // Base styles diff --git a/scss/_carousel.scss b/scss/_carousel.scss index e59e909b67..68f1e54f33 100644 --- a/scss/_carousel.scss +++ b/scss/_carousel.scss @@ -1,4 +1,10 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/transition" as *; +@use "mixins/clearfix" as *; +@use "mixins/gradients" as *; +@use "mixins/color-mode" as *; +@use "vendor/rfs" as *; // Notes on the classes: // diff --git a/scss/_close.scss b/scss/_close.scss index 54285c3aa1..98140fb02d 100644 --- a/scss/_close.scss +++ b/scss/_close.scss @@ -1,4 +1,7 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/color-mode" as *; // Transparent background and border properties included for button version. // iOS requires the button element instead of an anchor tag. diff --git a/scss/_config.scss b/scss/_config.scss index 1be6564dc7..9f82a94002 100644 --- a/scss/_config.scss +++ b/scss/_config.scss @@ -4,12 +4,26 @@ $prefix: bs- !default; -$enable-container-classes: true !default; -$enable-rounded: true !default; -$enable-shadows: true !default; -$enable-gradients: false !default; -$enable-transitions: true !default; -$enable-reduced-motion: false !default; +$enable-caret: true !default; +$enable-rounded: true !default; +$enable-shadows: false !default; +$enable-gradients: false !default; +$enable-transitions: true !default; +$enable-reduced-motion: true !default; +$enable-smooth-scroll: true !default; +$enable-grid-classes: true !default; +$enable-container-classes: true !default; +$enable-cssgrid: false !default; +$enable-button-pointers: true !default; +$enable-rfs: true !default; +$enable-validation-icons: true !default; +$enable-negative-margins: false !default; +$enable-deprecation-messages: true !default; +$enable-important-utilities: true !default; + +$enable-dark-mode: true !default; +$color-mode-type: data !default; // `data` or `media-query` + // more to come here… $color-mode-type: "media-query" !default; diff --git a/scss/_dropdown.scss b/scss/_dropdown.scss index b0f8a1146f..d51482513c 100644 --- a/scss/_dropdown.scss +++ b/scss/_dropdown.scss @@ -1,4 +1,12 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/caret" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; +@use "mixins/gradients" as *; +@use "mixins/caret" as *; +@use "vendor/rfs" as *; +@use "layout/breakpoints" as *; // The dropdown wrapper (`
`) .dropup, diff --git a/scss/_images.scss b/scss/_images.scss index 9d971f402f..f2858f6585 100644 --- a/scss/_images.scss +++ b/scss/_images.scss @@ -1,4 +1,9 @@ @use "config" as *; +@use "variables" as *; +@use "vendor/rfs" as *; +@use "mixins/image" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; // Responsive images (ensure images don't scale beyond their parents) // diff --git a/scss/_list-group.scss b/scss/_list-group.scss index cf6e2e391e..7132b38e4a 100644 --- a/scss/_list-group.scss +++ b/scss/_list-group.scss @@ -1,5 +1,9 @@ @use "config" as *; @use "colors" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "vendor/rfs" as *; +@use "layout/breakpoints" as *; // Base class // diff --git a/scss/_maps.scss b/scss/_maps.scss index 81ac47475e..8deaa312e2 100644 --- a/scss/_maps.scss +++ b/scss/_maps.scss @@ -1,5 +1,7 @@ @use "config" as *; @use "colors" as *; +@use "functions" as *; +@use "variables" as *; // Re-assigned maps // diff --git a/scss/_mixins.scss b/scss/_mixins.scss deleted file mode 100644 index c89a397456..0000000000 --- a/scss/_mixins.scss +++ /dev/null @@ -1,42 +0,0 @@ -// Toggles -// -// Used in conjunction with global variables to enable certain theme features. - -// Vendor -@import "vendor/rfs"; - -// Deprecate -@import "mixins/deprecate"; - -// Helpers -// @import "mixins/breakpoints"; -@import "mixins/color-mode"; -@import "mixins/color-scheme"; -@import "mixins/image"; -@import "mixins/resize"; -@import "mixins/visually-hidden"; -@import "mixins/reset-text"; -@import "mixins/text-truncate"; - -// Utilities -@import "mixins/utilities"; - -// Components -@import "mixins/backdrop"; -@import "mixins/buttons"; -@import "mixins/caret"; -// @import "mixins/pagination"; -@import "mixins/lists"; -// @import "mixins/forms"; -// @import "mixins/table-variants"; - -// Skins -@import "mixins/border-radius"; -@import "mixins/box-shadow"; -@import "mixins/gradients"; -@import "mixins/transition"; - -// Layout -@import "mixins/clearfix"; -// @import "mixins/container"; -// @import "mixins/grid"; diff --git a/scss/_modal.scss b/scss/_modal.scss index 1eef9aead2..4de96aec9a 100644 --- a/scss/_modal.scss +++ b/scss/_modal.scss @@ -1,4 +1,12 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; +@use "mixins/transition" as *; +@use "mixins/gradients" as *; +@use "mixins/backdrop" as *; +@use "vendor/rfs" as *; +@use "layout/breakpoints" as *; // stylelint-disable function-disallowed-list diff --git a/scss/_nav.scss b/scss/_nav.scss index 737b36c8a4..a8b05b7697 100644 --- a/scss/_nav.scss +++ b/scss/_nav.scss @@ -1,4 +1,9 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/transition" as *; +@use "mixins/gradients" as *; +@use "vendor/rfs" as *; // Base class // diff --git a/scss/_navbar.scss b/scss/_navbar.scss index 479f89c334..058f205278 100644 --- a/scss/_navbar.scss +++ b/scss/_navbar.scss @@ -1,4 +1,13 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; +@use "mixins/gradients" as *; +@use "mixins/transition" as *; +@use "mixins/color-mode" as *; +@use "mixins/deprecate" as *; +@use "vendor/rfs" as *; +@use "layout/breakpoints" as *; // Navbar // diff --git a/scss/_offcanvas.scss b/scss/_offcanvas.scss index 0c814537d2..efffc14a7d 100644 --- a/scss/_offcanvas.scss +++ b/scss/_offcanvas.scss @@ -1,4 +1,9 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/box-shadow" as *; +@use "mixins/transition" as *; +@use "mixins/backdrop" as *; +@use "layout/breakpoints" as *; // stylelint-disable function-disallowed-list diff --git a/scss/_pagination.scss b/scss/_pagination.scss index b43d7798e0..a06f1b60c9 100644 --- a/scss/_pagination.scss +++ b/scss/_pagination.scss @@ -1,4 +1,10 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/lists" as *; +@use "mixins/border-radius" as *; +@use "mixins/transition" as *; +@use "mixins/gradients" as *; +@use "vendor/rfs" as *; // scss-docs-start pagination-mixin @mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) { diff --git a/scss/_placeholders.scss b/scss/_placeholders.scss index 2fa6d90c51..f615f0a180 100644 --- a/scss/_placeholders.scss +++ b/scss/_placeholders.scss @@ -1,5 +1,6 @@ @use "config" as *; @use "colors" as *; +@use "variables" as *; .placeholder { display: inline-block; diff --git a/scss/_popover.scss b/scss/_popover.scss index 9c4e7838ab..517d5f3acb 100644 --- a/scss/_popover.scss +++ b/scss/_popover.scss @@ -1,4 +1,9 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; +@use "vendor/rfs" as *; +@use "mixins/reset-text" as *; .popover { // scss-docs-start popover-css-vars diff --git a/scss/_progress.scss b/scss/_progress.scss index 622e2a0e62..f577f7074d 100644 --- a/scss/_progress.scss +++ b/scss/_progress.scss @@ -1,5 +1,10 @@ @use "config" as *; +@use "variables" as *; @use "mixins/transition" as *; +@use "mixins/gradients" as *; +@use "mixins/border-radius" as *; +@use "mixins/box-shadow" as *; +@use "vendor/rfs" as *; // Disable animation if transitions are disabled diff --git a/scss/_reboot.scss b/scss/_reboot.scss index 4bab6641a3..35a789354f 100644 --- a/scss/_reboot.scss +++ b/scss/_reboot.scss @@ -1,5 +1,8 @@ @use "config" as *; @use "colors" as *; +@use "variables" as *; +@use "vendor/rfs" as *; +@use "mixins/border-radius" as *; // stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix diff --git a/scss/_root.scss b/scss/_root.scss index f51f6c3e62..2c15cdd1d6 100644 --- a/scss/_root.scss +++ b/scss/_root.scss @@ -1,5 +1,9 @@ @use "config" as *; @use "colors" as *; +@use "variables" as *; +@use "maps" as *; +@use "vendor/rfs" as *; +@use "mixins/color-mode" as *; :root, [data-bs-theme="light"] { diff --git a/scss/_spinners.scss b/scss/_spinners.scss index b940f600d7..c13caee16b 100644 --- a/scss/_spinners.scss +++ b/scss/_spinners.scss @@ -1,4 +1,5 @@ @use "config" as *; +@use "variables" as *; // // Rotating border diff --git a/scss/_tables.scss b/scss/_tables.scss index 19cde433f4..bb1fa82392 100644 --- a/scss/_tables.scss +++ b/scss/_tables.scss @@ -1,5 +1,8 @@ @use "config" as *; @use "colors" as *; +@use "variables" as *; +@use "functions" as *; +@use "layout/breakpoints" as *; // scss-docs-start table-variant @mixin table-variant($state, $background) { diff --git a/scss/_toasts.scss b/scss/_toasts.scss index cc1b785e55..b248f2d828 100644 --- a/scss/_toasts.scss +++ b/scss/_toasts.scss @@ -1,4 +1,7 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "vendor/rfs" as *; .toast { // scss-docs-start toast-css-vars diff --git a/scss/_tooltip.scss b/scss/_tooltip.scss index 0682661cbe..9a30c75742 100644 --- a/scss/_tooltip.scss +++ b/scss/_tooltip.scss @@ -1,4 +1,9 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/border-radius" as *; +@use "mixins/deprecate" as *; +@use "vendor/rfs" as *; +@use "mixins/reset-text" as *; // Base class .tooltip { diff --git a/scss/_transitions.scss b/scss/_transitions.scss index 989f590b2a..de779ea6b2 100644 --- a/scss/_transitions.scss +++ b/scss/_transitions.scss @@ -1,4 +1,6 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/transition" as *; .fade { @include transition($transition-fade); diff --git a/scss/_type.scss b/scss/_type.scss index e7716cb470..f13ea3863c 100644 --- a/scss/_type.scss +++ b/scss/_type.scss @@ -1,31 +1,35 @@ @use "config" as *; +@use "variables" as *; +@use "mixins/lists" as *; +@use "vendor/rfs" as *; // // Headings // -.h1 { - @extend h1; -} +// mdo-do: remove extend +// .h1 { +// @extend h1; +// } -.h2 { - @extend h2; -} +// .h2 { +// @extend h2; +// } -.h3 { - @extend h3; -} +// .h3 { +// @extend h3; +// } -.h4 { - @extend h4; -} +// .h4 { +// @extend h4; +// } -.h5 { - @extend h5; -} +// .h5 { +// @extend h5; +// } -.h6 { - @extend h6; -} +// .h6 { +// @extend h6; +// } .lead { @@ -48,11 +52,11 @@ // Emphasis // .small { - @extend small; + // @extend small; } .mark { - @extend mark; + // @extend mark; } // diff --git a/scss/_utilities.scss b/scss/_utilities.scss index bef10b822d..602085e527 100644 --- a/scss/_utilities.scss +++ b/scss/_utilities.scss @@ -1,5 +1,8 @@ @use "config" as *; @use "colors" as *; +@use "variables" as *; +@use "functions" as *; +@use "maps" as *; // Utilities diff --git a/scss/_variables.scss b/scss/_variables.scss index 6c6655f20a..bfce0c4dce 100644 --- a/scss/_variables.scss +++ b/scss/_variables.scss @@ -77,25 +77,25 @@ $escaped-characters: ( // // Quickly modify global styling by enabling or disabling optional features. -$enable-caret: true !default; -$enable-rounded: true !default; -$enable-shadows: false !default; -$enable-gradients: false !default; -$enable-transitions: true !default; -$enable-reduced-motion: true !default; -$enable-smooth-scroll: true !default; -$enable-grid-classes: true !default; -$enable-container-classes: true !default; -$enable-cssgrid: false !default; -$enable-button-pointers: true !default; -$enable-rfs: true !default; -$enable-validation-icons: true !default; -$enable-negative-margins: false !default; -$enable-deprecation-messages: true !default; -$enable-important-utilities: true !default; +// $enable-caret: true !default; +// $enable-rounded: true !default; +// $enable-shadows: false !default; +// $enable-gradients: false !default; +// $enable-transitions: true !default; +// $enable-reduced-motion: true !default; +// $enable-smooth-scroll: true !default; +// $enable-grid-classes: true !default; +// $enable-container-classes: true !default; +// $enable-cssgrid: false !default; +// $enable-button-pointers: true !default; +// $enable-rfs: true !default; +// $enable-validation-icons: true !default; +// $enable-negative-margins: false !default; +// $enable-deprecation-messages: true !default; +// $enable-important-utilities: true !default; -$enable-dark-mode: true !default; -$color-mode-type: data !default; // `data` or `media-query` +// $enable-dark-mode: true !default; +// $color-mode-type: data !default; // `data` or `media-query` // Prefix for :root CSS variables diff --git a/scss/bootstrap.scss b/scss/bootstrap.scss index 742aa3bb69..5b4d9e98fa 100644 --- a/scss/bootstrap.scss +++ b/scss/bootstrap.scss @@ -6,51 +6,51 @@ // Configuration // @use "config" as *; -@import "functions"; +// @import "functions"; // @import "colors"; -@import "variables"; -@import "variables-dark"; -@import "maps"; -@import "mixins"; -@import "utilities"; +// @import "variables"; +// @import "variables-dark"; +@use "maps"; +@use "mixins"; +// @use "utilities"; // Layout & components -@import "root"; -@import "reboot"; -@import "type"; -@import "images"; +@use "root"; +@use "reboot"; +@use "type"; +@use "images"; // @import "containers"; // @import "grid"; -@import "layout"; -@import "tables"; -@import "forms"; -@import "buttons"; -@import "transitions"; -@import "dropdown"; -@import "button-group"; -@import "nav"; -@import "navbar"; -@import "card"; -@import "accordion"; -@import "breadcrumb"; -@import "pagination"; -@import "badge"; -@import "alert"; -@import "progress"; -@import "list-group"; -@import "close"; -@import "toasts"; -@import "modal"; -@import "tooltip"; -@import "popover"; -@import "carousel"; -@import "spinners"; -@import "offcanvas"; -@import "placeholders"; +@use "layout"; +@use "tables"; +@use "forms"; +@use "buttons"; +@use "transitions"; +@use "dropdown"; +@use "button-group"; +@use "nav"; +@use "navbar"; +@use "card"; +@use "accordion"; +@use "breadcrumb"; +@use "pagination"; +@use "badge"; +@use "alert"; +@use "progress"; +@use "list-group"; +@use "close"; +@use "toasts"; +@use "modal"; +@use "tooltip"; +@use "popover"; +@use "carousel"; +@use "spinners"; +@use "offcanvas"; +@use "placeholders"; // Helpers -@import "helpers"; +@use "helpers"; // Utilities -@import "utilities/api"; +@use "utilities/api"; // scss-docs-end import-stack diff --git a/scss/helpers/_clearfix.scss b/scss/helpers/_clearfix.scss index e92522a94d..e2d9a81f32 100644 --- a/scss/helpers/_clearfix.scss +++ b/scss/helpers/_clearfix.scss @@ -1,3 +1,5 @@ +@use "../mixins/clearfix" as *; + .clearfix { @include clearfix(); } diff --git a/scss/helpers/_color-bg.scss b/scss/helpers/_color-bg.scss index 8c64fcb55f..763c96ff7b 100644 --- a/scss/helpers/_color-bg.scss +++ b/scss/helpers/_color-bg.scss @@ -1,5 +1,6 @@ @use "../config" as *; @use "../colors" as *; +@use "../variables" as *; // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251 @each $color, $value in $theme-colors { diff --git a/scss/helpers/_colored-links.scss b/scss/helpers/_colored-links.scss index ee0cbb550b..e1af109bde 100644 --- a/scss/helpers/_colored-links.scss +++ b/scss/helpers/_colored-links.scss @@ -1,5 +1,6 @@ @use "../config" as *; @use "../colors" as *; +@use "../variables" as *; // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251 @each $color, $value in $theme-colors { diff --git a/scss/helpers/_icon-link.scss b/scss/helpers/_icon-link.scss index 32db53207e..c028a3b1cb 100644 --- a/scss/helpers/_icon-link.scss +++ b/scss/helpers/_icon-link.scss @@ -1,5 +1,6 @@ @use "../config" as *; - +@use "../variables" as *; +@use "../mixins/transition" as *; .icon-link { display: inline-flex; gap: $icon-link-gap; diff --git a/scss/helpers/_position.scss b/scss/helpers/_position.scss index 99c1c8c108..f744bbbfaf 100644 --- a/scss/helpers/_position.scss +++ b/scss/helpers/_position.scss @@ -1,4 +1,6 @@ @use "../config" as *; +@use "../variables" as *; +@use "../layout/breakpoints" as *; // Shorthand diff --git a/scss/helpers/_ratio.scss b/scss/helpers/_ratio.scss index 444b41af4f..ba13752d7a 100644 --- a/scss/helpers/_ratio.scss +++ b/scss/helpers/_ratio.scss @@ -1,5 +1,5 @@ @use "../config" as *; - +@use "../variables" as *; // mdo-do: remve for utilities // Credit: Nicolas Gallagher and SUIT CSS. diff --git a/scss/helpers/_stretched-link.scss b/scss/helpers/_stretched-link.scss index 71a1c755af..ec283094d0 100644 --- a/scss/helpers/_stretched-link.scss +++ b/scss/helpers/_stretched-link.scss @@ -1,3 +1,5 @@ +@use "../variables" as *; + // // Stretched link // diff --git a/scss/helpers/_text-truncation.scss b/scss/helpers/_text-truncation.scss index 6421dac9a8..082fa0cdac 100644 --- a/scss/helpers/_text-truncation.scss +++ b/scss/helpers/_text-truncation.scss @@ -1,4 +1,4 @@ -// +@use "../mixins/text-truncate" as *; // Text truncation // diff --git a/scss/helpers/_visually-hidden.scss b/scss/helpers/_visually-hidden.scss index 4760ff03d1..ad6bf08845 100644 --- a/scss/helpers/_visually-hidden.scss +++ b/scss/helpers/_visually-hidden.scss @@ -1,3 +1,5 @@ +@use "../mixins/visually-hidden" as *; + // // Visually hidden // diff --git a/scss/helpers/_vr.scss b/scss/helpers/_vr.scss index b6f9d42cb1..15744ab8f4 100644 --- a/scss/helpers/_vr.scss +++ b/scss/helpers/_vr.scss @@ -1,3 +1,5 @@ +@use "../variables" as *; + .vr { display: inline-block; align-self: stretch; diff --git a/scss/mixins/_alert.scss b/scss/mixins/_alert.scss deleted file mode 100644 index fb524af1c2..0000000000 --- a/scss/mixins/_alert.scss +++ /dev/null @@ -1,18 +0,0 @@ -@include deprecate("`alert-variant()`", "v5.3.0", "v6.0.0"); - -// scss-docs-start alert-variant-mixin -@mixin alert-variant($background, $border, $color) { - --#{$prefix}alert-color: #{$color}; - --#{$prefix}alert-bg: #{$background}; - --#{$prefix}alert-border-color: #{$border}; - --#{$prefix}alert-link-color: #{shade-color($color, 20%)}; - - @if $enable-gradients { - background-image: var(--#{$prefix}gradient); - } - - .alert-link { - color: var(--#{$prefix}alert-link-color); - } -} -// scss-docs-end alert-variant-mixin diff --git a/scss/mixins/_buttons.scss b/scss/mixins/_buttons.scss deleted file mode 100644 index 7bffd4486f..0000000000 --- a/scss/mixins/_buttons.scss +++ /dev/null @@ -1,73 +0,0 @@ -@use "../config" as *; -@use "../colors" as *; - -// Button variants -// -// Easily pump out default styles, as well as :hover, :focus, :active, -// and disabled options for all buttons - -// scss-docs-start btn-variant-mixin -@mixin button-variant( - $background, - $border, - $color: color-contrast($background), - $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)), - $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)), - $hover-color: color-contrast($hover-background), - $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)), - $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)), - $active-color: color-contrast($active-background), - $disabled-background: $background, - $disabled-border: $border, - $disabled-color: color-contrast($disabled-background) -) { - --#{$prefix}btn-color: #{$color}; - --#{$prefix}btn-bg: #{$background}; - --#{$prefix}btn-border-color: #{$border}; - --#{$prefix}btn-hover-color: #{$hover-color}; - --#{$prefix}btn-hover-bg: #{$hover-background}; - --#{$prefix}btn-hover-border-color: #{$hover-border}; - --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))}; - --#{$prefix}btn-active-color: #{$active-color}; - --#{$prefix}btn-active-bg: #{$active-background}; - --#{$prefix}btn-active-border-color: #{$active-border}; - --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; - --#{$prefix}btn-disabled-color: #{$disabled-color}; - --#{$prefix}btn-disabled-bg: #{$disabled-background}; - --#{$prefix}btn-disabled-border-color: #{$disabled-border}; -} -// scss-docs-end btn-variant-mixin - -// scss-docs-start btn-outline-variant-mixin -@mixin button-outline-variant( - $color, - $color-hover: color-contrast($color), - $active-background: $color, - $active-border: $color, - $active-color: color-contrast($active-background) -) { - --#{$prefix}btn-color: #{$color}; - --#{$prefix}btn-border-color: #{$color}; - --#{$prefix}btn-hover-color: #{$color-hover}; - --#{$prefix}btn-hover-bg: #{$active-background}; - --#{$prefix}btn-hover-border-color: #{$active-border}; - --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)}; - --#{$prefix}btn-active-color: #{$active-color}; - --#{$prefix}btn-active-bg: #{$active-background}; - --#{$prefix}btn-active-border-color: #{$active-border}; - --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; - --#{$prefix}btn-disabled-color: #{$color}; - --#{$prefix}btn-disabled-bg: transparent; - --#{$prefix}btn-disabled-border-color: #{$color}; - --#{$prefix}gradient: none; -} -// scss-docs-end btn-outline-variant-mixin - -// scss-docs-start btn-size-mixin -@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) { - --#{$prefix}btn-padding-y: #{$padding-y}; - --#{$prefix}btn-padding-x: #{$padding-x}; - @include rfs($font-size, --#{$prefix}btn-font-size); - --#{$prefix}btn-border-radius: #{$border-radius}; -} -// scss-docs-end btn-size-mixin diff --git a/scss/mixins/_caret.scss b/scss/mixins/_caret.scss index be731165bd..802a95ea8d 100644 --- a/scss/mixins/_caret.scss +++ b/scss/mixins/_caret.scss @@ -1,3 +1,6 @@ +@use "../config" as *; +@use "../variables" as *; + // scss-docs-start caret-mixins @mixin caret-down($width: $caret-width) { border-top: $width solid; diff --git a/scss/mixins/_deprecate.scss b/scss/mixins/_deprecate.scss index df070bc596..77fef52c8d 100644 --- a/scss/mixins/_deprecate.scss +++ b/scss/mixins/_deprecate.scss @@ -1,3 +1,4 @@ +@use "../config" as *; // Deprecate mixin // // This mixin can be used to deprecate mixins or functions. diff --git a/scss/mixins/_list-group.scss b/scss/mixins/_list-group.scss deleted file mode 100644 index 7274dd0637..0000000000 --- a/scss/mixins/_list-group.scss +++ /dev/null @@ -1,29 +0,0 @@ -@use "../config" as *; -@use "../colors" as *; - -@include deprecate("`list-group-item-variant()`", "v5.3.0", "v6.0.0"); - -// List Groups - -// scss-docs-start list-group-mixin -@mixin list-group-item-variant($state, $background, $color) { - .list-group-item-#{$state} { - color: $color; - background-color: $background; - - &.list-group-item-action { - &:hover, - &:focus { - color: $color; - background-color: shade-color($background, 10%); - } - - &.active { - color: $white; - background-color: $color; - border-color: $color; - } - } - } -} -// scss-docs-end list-group-mixin diff --git a/scss/mixins/_pagination.scss b/scss/mixins/_pagination.scss deleted file mode 100644 index 0d657964fb..0000000000 --- a/scss/mixins/_pagination.scss +++ /dev/null @@ -1,10 +0,0 @@ -// Pagination - -// scss-docs-start pagination-mixin -@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) { - --#{$prefix}pagination-padding-x: #{$padding-x}; - --#{$prefix}pagination-padding-y: #{$padding-y}; - @include rfs($font-size, --#{$prefix}pagination-font-size); - --#{$prefix}pagination-border-radius: #{$border-radius}; -} -// scss-docs-end pagination-mixin diff --git a/scss/mixins/_reset-text.scss b/scss/mixins/_reset-text.scss index f5bd1afec2..8c43cce081 100644 --- a/scss/mixins/_reset-text.scss +++ b/scss/mixins/_reset-text.scss @@ -1,3 +1,6 @@ +@use "../config" as *; +@use "../variables" as *; + @mixin reset-text { font-family: $font-family-base; // We deliberately do NOT reset font-size or overflow-wrap / word-wrap. diff --git a/scss/mixins/_table-variants.scss b/scss/mixins/_table-variants.scss deleted file mode 100644 index 5fe1b9b20d..0000000000 --- a/scss/mixins/_table-variants.scss +++ /dev/null @@ -1,24 +0,0 @@ -// scss-docs-start table-variant -@mixin table-variant($state, $background) { - .table-#{$state} { - $color: color-contrast(opaque($body-bg, $background)); - $hover-bg: mix($color, $background, percentage($table-hover-bg-factor)); - $striped-bg: mix($color, $background, percentage($table-striped-bg-factor)); - $active-bg: mix($color, $background, percentage($table-active-bg-factor)); - $table-border-color: mix($color, $background, percentage($table-border-factor)); - - --#{$prefix}table-color: #{$color}; - --#{$prefix}table-bg: #{$background}; - --#{$prefix}table-border-color: #{$table-border-color}; - --#{$prefix}table-striped-bg: #{$striped-bg}; - --#{$prefix}table-striped-color: #{color-contrast($striped-bg)}; - --#{$prefix}table-active-bg: #{$active-bg}; - --#{$prefix}table-active-color: #{color-contrast($active-bg)}; - --#{$prefix}table-hover-bg: #{$hover-bg}; - --#{$prefix}table-hover-color: #{color-contrast($hover-bg)}; - - color: var(--#{$prefix}table-color); - border-color: var(--#{$prefix}table-border-color); - } -} -// scss-docs-end table-variant diff --git a/scss/mixins/index.scss b/scss/mixins/index.scss new file mode 100644 index 0000000000..b34adbd63c --- /dev/null +++ b/scss/mixins/index.scss @@ -0,0 +1,34 @@ +// Toggles +// +// Used in conjunction with global variables to enable certain theme features. + +// Vendor +// @forward "vendor/rfs"; + +// Deprecate +@forward "deprecate"; + +// Helpers +@forward "color-mode"; +@forward "color-scheme"; +@forward "image"; +@forward "resize"; +@forward "visually-hidden"; +@forward "reset-text"; +@forward "text-truncate"; + +// Utilities +@forward "utilities"; + +// Components +@forward "backdrop"; +@forward "caret"; + +// Skins +@forward "border-radius"; +@forward "box-shadow"; +@forward "gradients"; +@forward "transition"; + +// Layout +@forward "clearfix"; diff --git a/scss/utilities/_api.scss b/scss/utilities/_api.scss index d246fe937e..dd81196cec 100644 --- a/scss/utilities/_api.scss +++ b/scss/utilities/_api.scss @@ -1,4 +1,9 @@ @use "../config" as *; +@use "../variables" as *; +@use "../vendor/rfs" as *; +@use "../layout/breakpoints" as *; +@use "../mixins/utilities" as *; +@use "../utilities" as *; // Loop over each breakpoint @each $breakpoint in map-keys($grid-breakpoints) { diff --git a/site/src/scss/_masthead.scss b/site/src/scss/_masthead.scss index 7ceab46f2b..01fd5e2e3a 100644 --- a/site/src/scss/_masthead.scss +++ b/site/src/scss/_masthead.scss @@ -1,3 +1,4 @@ +@use "../../../scss/config" as *; @use "../../../scss/colors" as *; @use "../../../scss/variables" as *; @use "../../../scss/vendor/rfs" as *;