This commit is contained in:
Nikita Mikhaylov 2025-05-02 08:45:37 +00:00 committed by GitHub
commit 2f2427e5b3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 25 additions and 6 deletions

View File

@ -300,3 +300,9 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
}
@return $result;
}
@mixin _validate-utilities-field($utility, $utility-name, $field) {
@if (not map-has-key($utility, $field)) {
@warn "Missing '#{$field}' for '#{$utility-name}' utility";
}
}

View File

@ -1,6 +1,21 @@
// Utility generator
// Used to generate utilities & print utilities
@mixin generate-utility($utility, $infix: "", $is-rfs-media-query: false) {
@mixin generate-utility($utility, $infix: "", $is-rfs-media-query: false, $utility-name: null) {
// Check Requires Fields
@if ($utility-name) {
$required-fields: (
"property",
"values",
);
@each $field in $required-fields {
@include _validate-utilities-field($utility, $utility-name, $field);
}
}
// End Check Requires Fields
$properties: map-get($utility, property);
$values: map-get($utility, values);
// If the values are a list or string, convert it into a map
@ -9,8 +24,6 @@
}
@each $key, $value in $values {
$properties: map-get($utility, property);
// Multiple properties are possible, for example with vertical or horizontal margins or paddings
@if type-of($properties) == "string" {
$properties: append((), $properties);

View File

@ -10,7 +10,7 @@
// The utility can be disabled with `false`, thus check if the utility is a map first
// Only proceed if responsive media queries are enabled or if it's the base media query
@if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") {
@include generate-utility($utility, $infix);
@include generate-utility($utility, $infix, $utility-name: $key);
}
}
}
@ -27,7 +27,7 @@
// The utility can be disabled with `false`, thus check if the utility is a map first
// Only proceed if responsive media queries are enabled or if it's the base media query
@if type-of($utility) == "map" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == "") {
@include generate-utility($utility, $infix, true);
@include generate-utility($utility, $infix, true, $utility-name: $key);
}
}
}
@ -41,7 +41,7 @@
// The utility can be disabled with `false`, thus check if the utility is a map first
// Then check if the utility needs print styles
@if type-of($utility) == "map" and map-get($utility, print) == true {
@include generate-utility($utility, "-print");
@include generate-utility($utility, "-print", $utility-name: $key);
}
}
}