@use "sass:math";

$utilities: (
    "padding": (
        "prefix": "p",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "padding-left": (
        "prefix": "pl",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "padding-top": (
        "prefix": "pt",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "padding-right": (
        "prefix": "pr",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "padding-bottom": (
        "prefix": "pb",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "margin": (
        "prefix": "m",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "margin-left": (
        "prefix": "ml",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "margin-top": (
        "prefix": "mt",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "margin-right": (
        "prefix": "mr",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
    "margin-bottom": (
        "prefix": "mb",
        "values": (
            "0": 0,
            "1": $base-padding,
            "2": $base-padding * 2,
            "3": $base-padding * 4,
            "4": $base-padding * 6,
            "5": $base-padding * 8,
        ),
    ),
);

// generate utility classes
@each $property, $map in $utilities{
    $prefix: map-get($map, "prefix");
    $values: map-get($map, "values");

    @each $k, $v in $values{
        @if($k == "default"){
            .#{$prefix} {
                #{$property}: $v;
            }
        } @else{
            .#{$prefix}-#{$k} {
                #{$property}: $v;
            }
        }
    }
}

.bg-glass{
    @include glass-background();
}

.d-flex{
    @include horizontal-flex();
}