Grid column size calculation
Warning: I am far from an expert with Sass!

I'll list a few things I think could use some re-factoring.



We can DRY out your code. In the main function, I see $each-column + $each-gutter three times. Create a variable and assign the variable the sum.



This line: if ($function == 'offset' and $first-child == false) and ($responsive == false) can all be in one pair of parentheses. Breaking it apart actually reduces clarity.



I find that this line:

if ($function == 'push' or $function == 'pull') and ($responsive == false) or ($function == 'offset' and $first-child == true)


is difficult to read. Note my changes in the code below.



A couple instances, things seem mistaken. For example, this line:

if ($function == 'offset' or 'push' or 'pull') 


doesn't seem to be correct. I tried to copy this conditional, and I'm surprised you haven't noticed the error.

This statement says: If $function is equal to 'offset', or either 'push' is non-null or 'pull' is non-null. I believe it should be:

if ($function == 'offset' or $function == 'push' or $function == 'pull') and ($responsive == true) {




I've written your code to take into account all of these modifications. I think it looks neater, however it's not meant to be completely superficial. Since my Sass isn't very strong I hope someone else will be able to help break down your code with you more thoroughly.

@function calculate-function($function, $size, $first-child: false, $responsive: false) {
    $each-column: calculate-one-column() * $size;
    $each-gutter: calculate-each-gutter() * ($size - 1);

    $sum-width: $each-column + $each-gutter;

    $push-or-pull: ($function == 'push' or $function == 'pull');
    $offsetting: $function == 'offset';

    @if ($function == 'size') {
        @return $sum-width;

    } @else if ($offsetting and $first-child == false and $responsive == false) {
        @return $sum-width + ($gutter-width-percent * 1.5);

    } @else if $push-or-pull and ($responsive == false) or ($offsetting and $first-child) {
        @return $sum-width + $gutter-width-percent;

    } @else if ($offsetting or $push-or-pull) and $responsive {
        @return auto !important;
    }
}


Also, you misspelled percent as procent. I suggest you change that in all occurrences.