@use 'sass:list';
@use 'functions' as fn;

@mixin set-font($basis, $values: ()) {
    $values: fn.set-font($basis, $values);

    @each $prop, $value in $values {
        @if $value != null {
            #{$prop}: $value;
        }
    }
}

@mixin heading-strong($size) {
    font-size: fn.global-dim(list.join(--heading, $size));
    color:     fn.global-color(--heading);
}

@mixin heading-medium($size) {
    @include set-font(--standard, (
        --line-height: null,
        --size:        fn.global-dim(list.join(--heading, $size)),
        --weight:      bold
    ));

    color: fn.global-color(--heading);
}

@mixin heading-faint($size) {
    @include set-font(--standard, (
        --line-height: null,
        --size:        fn.global-dim(list.join(--heading, $size)),
        --weight:      500,
        --spacing:     1px
    ));

    color: fn.global-color(--text-mute);
}