// Spacing
//
// Control the default styling of most Bootstrap elements by modifying these
// variables. Mostly focused on spacing.
// You can add more entries to the --spacings map, should you need more variation.
//

$spacing: 1rem !default;

$margin-top: var(--spacing) !default;
$margin-right: var(--spacing) !default;
$margin-bottom: var(--spacing) !default;
$margin-left: var(--spacing) !default;
$margin: var(--margin-top) var(--margin-right) var(--margin-bottom) var(--margin-left);

$padding-top: var(--spacing) !default;
$padding-right: var(--spacing) !default;
$padding-bottom: var(--spacing) !default;
$padding-left: var(--spacing) !default;
$padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left);

$spacing--1-2: calc(var(--spacing) * 1 / 2) !default;
$spacing--1-3: calc(var(--spacing) * 1 / 3) !default;
$spacing--2-3: calc(var(--spacing) * 2 / 3) !default;
$spacing--1-4: calc(var(--spacing) * 1 / 4) !default;
$spacing--3-4: calc(var(--spacing) * 3 / 4) !default;
$spacing--0: calc(var(--spacing) * 0) !default;
$spacing--1: var(--spacing) !default;
$spacing--2: calc(var(--spacing) * 2) !default;
$spacing--3: calc(var(--spacing) * 3) !default;
$spacing--4: calc(var(--spacing) * 4) !default;
$spacing--5: calc(var(--spacing) * 5) !default;
$spacing--6: calc(var(--spacing) * 6) !default;
$spacing--7: calc(var(--spacing) * 7) !default;
$spacing--8: calc(var(--spacing) * 8) !default;
$spacings: (
    '1/2': $spacing--1-2,
    '1/3': $spacing--1-3,
    '2/3': $spacing--2-3,
    '1/4': $spacing--1-4,
    '3/4': $spacing--3-4,
    '0': $spacing--0,
    '1': $spacing--1,
    '2': $spacing--2,
    '3': $spacing--3,
    '4': $spacing--4,
    '5': $spacing--5,
    '6': $spacing--6,
    '7': $spacing--7,
    '8': $spacing--8,
) !default;

@function spacing($spacing-key: null) {
    @if not ($spacing-key) {
        @return var(--spacing);
    }

    @return map-get($spacings, $spacing-key);
}
