【问题标题】:Sass error : function does not return a correct mapSass 错误:函数未返回正确的地图
【发布时间】:2021-04-17 12:27:52
【问题描述】:

我正在尝试制作一个 scss 函数来制作材质调色板。

这个函数应该返回一个地图,但是当我调试时,我得到了这个:

SassError: $map: gen-palette(green) 不是地图。

这是我的代码:

$highlight-color: green;

$highlight-palette: gen-palette( $highlight-color );

@debug map-get( $highlight-palette, '50' );

@function gen-palette( $color ) {
  $map: (
    '50': lighten( $color, 52% ),
    '100': lighten( $color, 37% ),
    '200': lighten( $color, 26% ),
    '300': lighten( $color, 12% ),
    '400': lighten( $color, 6% ),
    '500': $color,
    '600': darken( $color, 6% ),
    '700': darken( $color, 12% ),
    '800': darken( $color, 18% ),
    '900': darken( $color, 24% ),
    'A100': lighten( saturate( $color, 30% ), 50% ),
    'A200': lighten( saturate( $color, 30% ), 30% ),
    'A400': lighten( saturate( $color, 15% ), 10% ),
    'A700': lighten( saturate( $color, 5% ), 5% ),
  );
  @return $map;
}

有人可以帮我解决这个错误,我的 IDE 没有显示任何东西?

【问题讨论】:

    标签: sass sass-maps


    【解决方案1】:

    你把事情搞混了一点。在 Sass 中,函数需要在使用前声明。

    @function gen-palette($color) {
      @return (
        "50": lighten($color, 52%),
        "100": lighten($color, 37%),
        "200": lighten($color, 26%),
        "300": lighten($color, 12%),
        "400": lighten($color, 6%),
        "500": $color,
        "600": darken($color, 6%),
        "700": darken($color, 12%),
        "800": darken($color, 18%),
        "900": darken($color, 24%),
        "A100": lighten(saturate($color, 30%), 50%),
        "A200": lighten(saturate($color, 30%), 30%),
        "A400": lighten(saturate($color, 15%), 10%),
        "A700": lighten(saturate($color, 5%), 5%),
      ); 
    }
    
    body {
      background-color: map-get(gen-palette(#2196f3), "500");
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2021-10-22
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多