@function add($value1, $value2, $return-calc: true) { @if $value1 == null { @return $value2; } @if $value2 == null { @return $value1; } @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) { @return $value1 + $value2; } @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2); } @function subtract($value1, $value2, $return-calc: true) { @if $value1 == null and $value2 == null { @return null; } @if $value1 == null { @return -$value2; } @if $value2 == null { @return $value1; } @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) { @return $value1 - $value2; } @if type-of($value2) != number and str-index($value2, '+') { $value2: unquote("(") + $value2 + unquote(")"); } @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2); } $add: add(1rem, 1em, false); $subtract: subtract(1rem, 1em, false); a { font-size: add(1vw, $add); font-size: add(1vw, $subtract); font-size: subtract(1vw, $add); font-size: subtract(1vw, $subtract); }