@function get-config-prop( $config, $name, $prop ) {
    $key: config-#{$prop}-#{$name};

    @if map-has-key( $config, $name ) {
        @if map-has-key( map-get( $config, $name ), $prop ) {
            @return map-get( map-get( $config, $name ), $prop );
        }
    }

    @warn NO_SUCH_KEY $key;
    @return null;
}


// #region typography
@function font-map( $font-family: null, $font-size: null, $line-height: null, $font-weight: null, $letter-spacing: null ) {
    @return (
        font-family: $font-family,
        font-size: $font-size,
        line-height: $line-height,
        font-weight: $font-weight,
        letter-spacing: $letter-spacing
    );
}
@function get-font-family( $config, $name ) {
    @return get-config-prop( $config, $name, font-family );
}
@function get-font-size( $config, $name ) {
    @return get-config-prop( $config, $name, font-size );
}
@function get-line-height( $config, $name ) {
    @return get-config-prop( $config, $name, line-height );
}
@function get-font-weight( $config, $name ) {
    @return get-config-prop( $config, $name, font-weight );
}
@function get-letter-spacing( $config, $name ) {
    @return get-config-prop( $config, $name, letter-spacing );
}
// #endregion
