45 lines
1.9 KiB
Sass
45 lines
1.9 KiB
Sass
@use 'sass:string'
|
|
@use 'sass:map'
|
|
@use 'sass:meta'
|
|
@use '../settings'
|
|
@use '../tools'
|
|
@use './display'
|
|
@use './elevation'
|
|
@use './screenreaders'
|
|
|
|
// Utilities
|
|
@each $breakpoint in map.keys(settings.$grid-breakpoints)
|
|
// Generate media query if needed
|
|
+tools.media-breakpoint-up($breakpoint)
|
|
$infix: tools.breakpoint-infix($breakpoint, settings.$grid-breakpoints)
|
|
|
|
// Loop over each utility property
|
|
@each $key, $utility in settings.$utilities
|
|
// 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 string.slice($key, -4) == ':ltr'
|
|
@if meta.type-of($utility) == "map" and (map.get($utility, responsive) or $infix == "")
|
|
+tools.generate-utility($utility, $infix, 'ltr')
|
|
@else if string.slice($key, -4) == ':rtl'
|
|
@if meta.type-of($utility) == "map" and (map.get($utility, responsive) or $infix == "")
|
|
+tools.generate-utility($utility, $infix, 'rtl')
|
|
@else
|
|
@if meta.type-of($utility) == "map" and (map.get($utility, responsive) or $infix == "")
|
|
+tools.generate-utility($utility, $infix, 'bidi')
|
|
|
|
|
|
// Print utilities
|
|
@media print
|
|
@each $key, $utility in settings.$utilities
|
|
// 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 string.slice($key, -4) == ':ltr'
|
|
@if meta.type-of($utility) == "map" and map.get($utility, print) == true
|
|
+tools.generate-utility($utility, "-print", 'ltr')
|
|
@else if string.slice($key, -4) == ':rtl'
|
|
@if meta.type-of($utility) == "map" and map.get($utility, print) == true
|
|
+tools.generate-utility($utility, "-print", 'rtl')
|
|
@else
|
|
@if meta.type-of($utility) == "map" and map.get($utility, print) == true
|
|
+tools.generate-utility($utility, "-print", 'bidi')
|