我希望能够检查两种颜色的对比度,并在对比度低于某个阈值时发出警告。这是我的代码:
@function contrast-check($color1, $color2, $threshold: 4.5) {
@if contrast($color1, $color2) < $threshold {
@warn 'contrast #{$contrast} between #{$color1} and #{$color2} too low!';
}
}
麻烦的是我无法从任何地方调用此功能。这是我试过的:
contrast-check(#fff, #000);
- 错误:'...'后无效的CSS:预期的1个选择器或at-rule,是“rast-check(#fff ...”$: contrast-check(#fff, #000);
- 错误:函数对比度检查未返回值* {test: contrast-check(#fff, #000);}
- 错误:函数对比度检查未返回值我可以将功能转换为混音。然后就可以按预期调用它。但是mixin不能用于其他功能。
另一种选择可能是返回任意值。这样可以工作,但也会非常hacky,因为每次调用函数时都必须将该值赋给一个抛弃变量。
有一个很好的方法吗?
答案 0 :(得分:2)
不幸的是,这是不可能的,这里有关于项目的Git问题页面的讨论。
https://github.com/sass/sass/issues/1348
你可以从功能中返回null但似乎SASS的创造者不想让你做这种事情所以最好的选择就是使用mixin,即使你不混合任何事情。我知道它在语义上是错误的但是......
这个问题让我觉得SASS不能完成我需要做的工作,我现在正在编写一个postcss插件来完成这项工作。不知道这条路线是否适合你。