2
0
mirror of https://github.com/tenrok/bootstrap.git synced 2026-06-20 20:00:36 +03:00

Update utility mixin and wrap utility classes in $enable- variable

- Rearrange Sass files to simplify things
- Rename `utl()` to `util()`
- Add new `$enable-utility-classes` variable for disabling the default generation of our utilities (useful if you want to only use utilities via mixin)
This commit is contained in:
Mark Otto
2021-12-04 12:12:42 -08:00
parent 6ea0e7ea8a
commit 91e25a3892
8 changed files with 61 additions and 59 deletions
+1
View File
@@ -348,6 +348,7 @@ $enable-rfs: true !default;
$enable-validation-icons: true !default; $enable-validation-icons: true !default;
$enable-negative-margins: false !default; $enable-negative-margins: false !default;
$enable-deprecation-messages: true !default; $enable-deprecation-messages: true !default;
$enable-utility-classes: true !default;
$enable-important-utilities: true !default; $enable-important-utilities: true !default;
// Prefix for :root CSS variables // Prefix for :root CSS variables
-1
View File
@@ -66,4 +66,3 @@ $utilities: map-get-multiple(
); );
@import "utilities/api"; @import "utilities/api";
@import "utilities/mixin";
-1
View File
@@ -17,4 +17,3 @@
// Utilities // Utilities
@import "utilities/api"; @import "utilities/api";
@import "utilities/mixin";
-1
View File
@@ -51,5 +51,4 @@
// Utilities // Utilities
@import "utilities/api"; @import "utilities/api";
@import "utilities/mixin";
// scss-docs-end import-stack // scss-docs-end import-stack
+1 -1
View File
@@ -14,8 +14,8 @@
} }
$utilities-map: () !default; $utilities-map: () !default;
@each $key, $utility in $utilities {
@each $key, $utility in $utilities {
@if type-of($utility) == "map" { @if type-of($utility) == "map" {
$properties: map-get($utility, property); $properties: map-get($utility, property);
// Some utilities set the value on more than one property. // Some utilities set the value on more than one property.
+28 -1
View File
@@ -1,6 +1,6 @@
@if $enable-utility-classes {
// Loop over each breakpoint // Loop over each breakpoint
@each $breakpoint in map-keys($grid-breakpoints) { @each $breakpoint in map-keys($grid-breakpoints) {
// Generate media query if needed // Generate media query if needed
@include media-breakpoint-up($breakpoint) { @include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints); $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@@ -45,3 +45,30 @@
} }
} }
} }
}
// Generate utility placeholders
$utilities-map: build-utilities-map(); // stylelint-disable-line scss/dollar-variable-default
@mixin util($class) {
@if map-has-key($utilities-map, $class) {
$definition: map-get($utilities-map, $class);
$breakpoint: map-get($definition, breakpoint);
@if $breakpoint != null {
@include media-breakpoint-up($breakpoint) {
@each $property in map-get($definition, properties) {
#{$property}: map-get($definition, value);
}
}
}
@else {
@each $property in map-get($definition, properties) {
#{$property}: map-get($definition, value);
}
}
}
@else {
@debug "Unknown utility class " + $class;
}
}
-24
View File
@@ -1,24 +0,0 @@
$utilities-map: build-utilities-map(); // stylelint-disable-line scss/dollar-variable-default
@mixin utl($class) {
@if map-has-key($utilities-map, $class) {
$definition: map-get($utilities-map, $class);
$breakpoint: map-get($definition, breakpoint);
@if $breakpoint != null {
@include media-breakpoint-up($breakpoint) {
@each $property in map-get($definition, properties) {
#{$property}: map-get($definition, value);
}
}
}
@else {
@each $property in map-get($definition, properties) {
#{$property}: map-get($definition, value);
}
}
}
@else {
@debug "Unknown utility class " + $class;
}
}
@@ -26,6 +26,7 @@ You can find and customize these variables for key global options in Bootstrap's
| `$enable-validation-icons` | `true` (default) or `false` | Enables `background-image` icons within textual inputs and some custom forms for validation states. | | `$enable-validation-icons` | `true` (default) or `false` | Enables `background-image` icons within textual inputs and some custom forms for validation states. |
| `$enable-negative-margins` | `true` or `false` (default) | Enables the generation of [negative margin utilities]({{< docsref "/utilities/spacing#negative-margin" >}}). | | `$enable-negative-margins` | `true` or `false` (default) | Enables the generation of [negative margin utilities]({{< docsref "/utilities/spacing#negative-margin" >}}). |
| `$enable-deprecation-messages` | `true` (default) or `false` | Set to `false` to hide warnings when using any of the deprecated mixins and functions that are planned to be removed in `v6`. | | `$enable-deprecation-messages` | `true` (default) or `false` | Set to `false` to hide warnings when using any of the deprecated mixins and functions that are planned to be removed in `v6`. |
| `$enable-utility-classes` | `true` (default) or `false` | Enables the generation of utility classes. |
| `$enable-important-utilities` | `true` (default) or `false` | Enables the `!important` suffix in utility classes. | | `$enable-important-utilities` | `true` (default) or `false` | Enables the `!important` suffix in utility classes. |
| `$enable-smooth-scroll` | `true` (default) or `false` | Applies `scroll-behavior: smooth` globally, except for users asking for reduced motion through [`prefers-reduced-motion` media query]({{< docsref "/getting-started/accessibility#reduced-motion" >}}) | | `$enable-smooth-scroll` | `true` (default) or `false` | Applies `scroll-behavior: smooth` globally, except for users asking for reduced motion through [`prefers-reduced-motion` media query]({{< docsref "/getting-started/accessibility#reduced-motion" >}}) |
{{< /bs-table >}} {{< /bs-table >}}