@function vw($origSize, $minValue: 0, $maxValue: 0) {
    @if (unit($origSize) == rem) {
        $origSize: stripUnit($origSize) * $fontSizeBase;
    }

    $minValue: calcMinValue($origSize, $minValue);
    $maxValue: calcMaxValue($origSize, $maxValue);

    $vwSize: ($origSize * 100vw) / $baseViewportWidth;
    //$vwSize: roundFloat($vwSize);

    @return clamp($minValue, $vwSize, $maxValue);
}  

@function vh($origSize, $minValue: 0, $maxValue: 0) {
    @if (unit($origSize) == rem) {
        $origSize: stripUnit($origSize) * $fontSizeBase;
    }

    $minValue: calcMinValue($origSize, $minValue);
    $maxValue: calcMaxValue($origSize, $maxValue);

    $vhSize: ($origSize * 100vh) / $baseViewportHeight;
    $vhSize: roundFloat($vhSize);

    @return clamp($minValue, $vhSize, $maxValue);
}

@function calcMinValue($origSize, $minValue) {
    @if ($minValue == 0) {
        $minValue: $origSize * $minSizeRatio;
    }

    @return $minValue;
}

@function calcMaxValue($origSize, $maxValue) {
    @if ($maxValue == 0) {
        $maxValue: $origSize * $maxSizeRatio;
    }

    @return $maxValue;
} 

@function stripUnit($number) {
    @if type-of($number) == 'number' and not unitless($number) {
        @return $number / ($number * 0 + 1);
    }
  
    @return $number;
}

@function roundFloat($number) {
    @return round($number * 1000) / 1000;
}