////
/// Project mixins
///
/// @group Project
////


/// Open Sans shortcut
///
/// @require {function} rem
/// @require {variable} $font-config
/// @throw Not defined in $font-config!
///
/// @param {number|string} $font-size      [null]
/// @param {number|string} $line-height    [null]
/// @param {number}        $font-weight    [null]
/// @param {string}        $font-style     [null]
/// @param {number|string} $letter-spacing [null]
///
@mixin open-sans($font-size: null, $line-height: null, $font-weight: null, $font-style: null, $letter-spacing: null) {
    font-family: 'Open Sans', sans-serif;
    font-weight: $font-weight;
    font-style: $font-style;

    @include font($font-size, $line-height, $letter-spacing);
}

/// Shortcut to `open-sans()` with `font-weight: 300`
///
/// @require {function} rem
/// @require {variable} $font-config
/// @throw Not defined in $font-config!
///
/// @param {number|string} $font-size      [null]
/// @param {number|string} $line-height    [null]
/// @param {string}        $font-style     [null]
/// @param {number|string} $letter-spacing [null]
///
@mixin open-sans-light($font-size: null, $line-height: null, $font-style: null, $letter-spacing: null) {
    @include open-sans($font-size, $line-height, 300, $font-style, $letter-spacing);
}

/// Shortcut to `open-sans()` with `font-weight: 400`
///
/// @require {function} rem
/// @require {variable} $font-config
/// @throw Not defined in $font-config!
///
/// @param {number|string} $font-size      [null]
/// @param {number|string} $line-height    [null]
/// @param {string}        $font-style     [null]
/// @param {number|string} $letter-spacing [null]
///
@mixin open-sans-normal($font-size: null, $line-height: null, $font-style: null, $letter-spacing: null) {
    @include open-sans($font-size, $line-height, 400, $font-style, $letter-spacing);
}

/// Shortcut to `open-sans()` with `font-weight: 600`
///
/// @require {function} rem
/// @require {variable} $font-config
/// @throw Not defined in $font-config!
///
/// @param {number|string} $font-size      [null]
/// @param {number|string} $line-height    [null]
/// @param {string}        $font-style     [null]
/// @param {number|string} $letter-spacing [null]
///
@mixin open-sans-medium($font-size: null, $line-height: null, $font-style: null, $letter-spacing: null) {
    @include open-sans($font-size, $line-height, 600, $font-style, $letter-spacing);
}

/// Shortcut to `open-sans()` with `font-weight: 700`
///
/// @require {function} rem
/// @require {variable} $font-config
/// @throw Not defined in $font-config!
///
/// @param {number|string} $font-size      [null]
/// @param {number|string} $line-height    [null]
/// @param {string}        $font-style     [null]
/// @param {number|string} $letter-spacing [null]
///
@mixin open-sans-bold($font-size: null, $line-height: null, $font-style: null, $letter-spacing: null) {
    @include open-sans($font-size, $line-height, 700, $font-style, $letter-spacing);
}
