Нет, вы не можете сделать это напрямую в SASS: вы не можете получить произвольные значения свойств CSS.
Однако вы можете создать переменную SASS для вашего цвета фона, а затем использовать ее в своей функции следующим образом:
@function set-text-color($color) {
@if (lightness( $color) > 40) {
@return black;
}
@else {
@return white;
}
}
$bg-color-1 = #fff;
$bg-color-2 = #000;
.example {
.heading {
font-size: 1.5em;
padding: 1em;
color:set-text-color($bg-color-1);
}
.description {
padding: 1em;
background: lighten($bg-color-2, 30%);
color:set-text-color($bg-color-2);
}
}
Вы даже можете объединить эти два с миксином, например, так:
@mixin set-bg-color($bg-color:$bg-color-1){
background-color: $bg-color;
color: set-text-color($bg-color);
}
.example {
.heading {
font-size: 1.5em;
padding: 1em;
@include set-bg-color;
}
.description {
padding: 1em;
@include set-bg-color($bg-color-2);
}
}