SASS @mixin的默认参数



我似乎无法在任何地方找到堆栈溢出的特定问题的答案。

我正在使用指南针,正在为box-shadow/text-shadow构建@mixin

我想知道是否可以在sass/scss中设置默认参数?

这是我当前的代码:

@mixin outer-glow($color, $type) {
  @if $type == 'text' {
    @include text-shadow(0 0 2px #{$color});
    @include text-shadow(0 0 .125rem #{$color}); // 2px
  } @else {
    @include box-shadow(0 0 2px #{$color});
    @include box-shadow(0 0 .125rem #{$color}); // 2px
  }
}

如果未声明$type,我想使用此@mixin并将其默认为box-shadow

// declaration
@include outer-glow($my-color);
// output
would compile to box-shadow
// declaration
@include outer-glow($my-color, text);
// output
would compile to text-shadow

我发现了这个有用的帖子,回答了我的问题。

所以我已经编辑了我的@mixin,现在我可以按照预期使用它,如果现在分配了参数,则默认为box-shadow

@mixin outer-glow($color, $type: box) {
  @if $type == 'text' {
    @include text-shadow(0 0 2px #{$color});
    @include text-shadow(0 0 .125rem #{$color}); // 2px
  } @else {
    @include box-shadow(0 0 2px #{$color});
    @include box-shadow(0 0 .125rem #{$color}); // 2px
  }
}

最新更新