diff options
| author | Nikita Mikhaylov <[email protected]> | 2020-09-14 08:33:31 +0300 |
|---|---|---|
| committer | Martijn Cuppens <[email protected]> | 2020-11-13 20:16:05 +0100 |
| commit | 1fddb48affc5cbf45effe65ef0a45b56b252f6fa (patch) | |
| tree | 2fd1583e3567fc4fdd3561e3ea5a1a93ad3bb2d4 | |
| parent | 55f2192a398cdb4446937322f14b3e7e359a0d00 (diff) | |
| download | bootstrap-1fddb48affc5cbf45effe65ef0a45b56b252f6fa.tar.xz bootstrap-1fddb48affc5cbf45effe65ef0a45b56b252f6fa.zip | |
Add hover utilities
remome several hobers
refactoring hover utilities
refactoring hover utilities
| -rw-r--r-- | scss/mixins/_utilities.scss | 11 | ||||
| -rw-r--r-- | site/content/docs/5.0/utilities/api.md | 56 |
2 files changed, 67 insertions, 0 deletions
diff --git a/scss/mixins/_utilities.scss b/scss/mixins/_utilities.scss index cd9f93056..145839a39 100644 --- a/scss/mixins/_utilities.scss +++ b/scss/mixins/_utilities.scss @@ -20,6 +20,9 @@ $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1)); $property-class: if($property-class == null, "", $property-class); + // State params to generate pseudo-classes + $state: if(map-has-key($utility, state), map-get($utility, state), ()); + $infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix); // Don't prefix if value key is null (eg. with shadow class) @@ -44,6 +47,14 @@ #{$property}: $value if($enable-important-utilities, !important, null); } } + + @each $pseudo in $state { + .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} { + @each $property in $properties { + #{$property}: $value if($enable-important-utilities, !important, null); + } + } + } } } } diff --git a/site/content/docs/5.0/utilities/api.md b/site/content/docs/5.0/utilities/api.md index c3fa5b150..a0ba976d8 100644 --- a/site/content/docs/5.0/utilities/api.md +++ b/site/content/docs/5.0/utilities/api.md @@ -264,3 +264,59 @@ $utilities: map-merge( ) ); ``` + +## Adding pseudo-classes to utilities + +With the `state` option, pseudo-class utilities can be generated: + +```scss +$utilities: ( + "shadow": ( + property: box-shadow, + state: hover focus, + class: shadow, + values: ( + null: $box-shadow, + sm: $box-shadow-sm, + lg: $box-shadow-lg, + none: none, + ) + ) +); +``` + +Output: + +```css +.shadow-hover:hover { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-focus:focus { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-sm-hover:hover { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-sm-focus:focus { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-lg-hover:hover { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-lg-focus:focus { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none-hover:hover { + box-shadow: none !important; +} + +.shadow-none-focus:focus { + box-shadow: none !important; +} +``` |
