csssasscompass-sass

Sass negative variable value?


I have a couple of scss selectors where I use the same amount positive and negative, as in:

padding: 0 15px 15px;
margin: 0 -15px 20px -15px;

I'd prefer to use a variable for all the 15px amounts, but this does not work:

$pad: 15px;
padding: 0 $pad $pad;
margin: 0 -$pad 20px -$pad;

The margin amounts convert to positive numbers. Am I missing something?


Solution

  • create a function

    @function neg($val) {
      @return $val * -1
    };
    

    then I use it like this

    $gutter: 30px;
    
    .header {
      margin: $gutter neg($gutter);
    }