khollenbeck
khollenbeck

Reputation: 16157

SASS How to set a Variable to equal nothing?

I am trying to create a variable that is equal to nothing. I have tried the following...

$false:null;

-and-

$false:" ";

What I am trying to use it with is this...

@mixin myMixin($myVariable:"", $myOtherVariable){
    $false:null;
    @if $myVariable == $false {
       //do something
    }
    @if $myVariable != "" {
      //do something else
    }
}

@include myMixin("", $myOtherVariable);

I am using two variables for this example, but I plan to have more than two.

Basically what I want to do is have the option to exclude a variable without having to use empty quotes. And the problem with $false: ""; Is that it still expects empty quotes. So I am wondering if there is something built into SASS to designate "null / or nothing". I thought it might be null. But that doesn't seem to be the case..

Upvotes: 38

Views: 30955

Answers (3)

Miriam Suzanne
Miriam Suzanne

Reputation: 14010

null or false will work (null is new in the latest version of Sass). Both will work for your example. The only advantage of null is that it disappears if you use it with a property.

@mixin myMixin($myVariable: false, $myOtherVariable: false){
  @if not $myVariable {
     //do something
  } @else {
    //do something else
  }
}

@include myMixin(false, $myOtherVariable);

Upvotes: 47

9ete
9ete

Reputation: 3772

Set the variable to 'false'

$false: false;

Upvotes: 0

maxbeatty
maxbeatty

Reputation: 9325

Sass is written in ruby which uses nil instead of null.

@mixin myMixin($myVariable, $myOtherVariable){
  $false: nil;
  @if $myVariable == $false{
     color: inherit;
  } @else {
     color: $myVariable;
  }
}

p {
  @include myMixin(nil, $myOtherVariable);
}

.red {
  @include myMixin(red, $myOtherVariable);
}

Example on jsFiddle

Upvotes: 0

Related Questions