shared/css/guss-typography/_typography.helpers.scss (18 lines of code) (raw):
// Font scale helpers
// =============================================================================
/**
* Grab all levels of a font the font-scale
*
* @param {String} $name - Name of the font-scale matrix (eg: headline)
* @param {Map} $font-scale ($font-scale)
*
* @example
* font-size: get-scale(header);
*
* @requires {variable} $font-scale
*
* @return {Map}
*
* @group typography
*/
@function get-scale($name, $font-scale: $font-scale) {
@return map-get($font-scale, $name);
}
/**
* Grab info for a particular level of a font-scale
*
* @param {String} $name - Name of the font-scale in the matrix (eg: headline)
* @param {Number} $level - Level in the matrix
* @param {Map} $font-scale ($font-scale)
*
* @example
* font-size: get-scale-level(header, 1);
*
* @requires {variable} $font-scale
* @requires {function} get-scale
*
* @return {Map}
*
* @group typography
*/
@function get-scale-level($name, $level, $font-scale: $font-scale) {
@return map-get(get-scale($name, $font-scale), $level);
}
/**
* Get a font-size for a level in the font-scale matrix
*
* @param {String} $name - Name of the font-scale in the matrix (eg: headline)
* @param {Number} $level - Level in the matrix
* @param {Map} $font-scale - Configuration
*
* @example
* font-size: get-font-size(header, 3);
*
* @requires {variable} $font-scale
* @requires {function} convert-to-px
* @requires {function} get-scale-level
*
* @return {Number}
*
* @group typography
*/
@function get-font-size($name, $level, $font-scale: $font-scale) {
@return convert-to-px(map-get(get-scale-level($name, $level, $font-scale), font-size));
}
/**
* Get a line-height for a level in the font-scale matrix
*
* @param {String} $name - Name of the font-scale in the matrix (eg: headline)
* @param {Number} $level - Level in the matrix
* @param {Map} $font-scale - Configuration
*
* @example
* font-size: get-line-height(header, 3);
*
* @requires {variable} $font-scale
* @requires {function} convert-to-px
* @requires {function} get-scale-level
*
* @return {Number}
*
* @group typography
*/
@function get-line-height($name, $level, $font-scale: $font-scale) {
@return convert-to-px(map-get(get-scale-level($name, $level, $font-scale), line-height));
}
/**
* Turn any value into pixels
*
* @param {Number} $value
*
* @example
* font-size: convert-to-px(14); // 14px
*
* @return {Number}
*
* @group typography
*/
@function convert-to-px($value) {
@if (type-of($value) == number and $value != 0) {
$value: if(unitless($value), $value * 1px, $value);
}
@return $value;
}