Search code examples
sassscss-mixins

SASS mixins - default value for @content


Is it possible to define a default value for @content just as one would do with arguments?

For instance something like:

@mixin foo {
    @content: width:100%;
}

Solution

  • No, @content is not a variable. You cannot set a default value to it. You cannot manipulate or examine it.

    If Alessandro's answer is unsuitable for your needs, you'll need to create an extra mixin to get the results you desire:

    @mixin foo {
      color: red;
      @content;
    }
    
    @mixin empty-foo {
      @include foo {
        width: 100%;
      }
    }
    
    .foo {
      @include foo {
        border: 1px solid;
      }
    }
    
    .bar {
      @include empty-foo;
    }