SASS с использованием функции в определении переменной
Я использую node-sass и пытаюсь создать набор стилей, которые можно легко перефразировать, то есть, например, изменение одного цвета приведет к обновлению различных других.
У меня есть функция, которая берет цвет (цвет фона), определяет яркость и выводит предварительно установленный темный или светлый цвет, который будет использоваться в качестве цвета текста. Я использовал эту же функцию раньше, и она работает хорошо. Он включен в файл sass и проверил, что он работает.
@function color-contrast($color) {
@if (lightness($color) > 50) {
@return $color-text-dark; //if the background is more than 50 lightness, return the dark colour
}
@else {
@return $color-text-light; //if not, return the light colour
}
}
Тем не менее, я сейчас пытаюсь использовать эту функцию в объявлении переменной. Так что я
$contentbox-text-color: color-contrast($bg-color) ;
($bg-color, $color-text- и т. д. установлены ранее в таблице)
Проблема в том, что везде, где я использую $contentbox-text-color, я вижу значение цвета
color-contrast(blue);
(где "blue" - это значение $ bg-color), а не результат функции, которую я ожидаю увидеть. Я попытался интерполировать функцию, как показано ниже, но результат тот же
$contentbox-text-color: #{color-contrast($bg-color)} ;
Мне нужно получить доступ к этой функции через переменную, так как я затем использую переменную (/ результирующий цвет) в качестве аргумента для миксина и в других местах.
Кто-нибудь знает какой-либо способ добиться того, что я пытаюсь сделать? Я не могу найти какую-либо информацию об использовании функций внутри переменных, поэтому я не знаю, является ли это чем-то невозможным, или мне просто не хватает какого-то синтаксиса, который заставил бы его работать правильно!
Спасибо:)
Быстрое обновление: это правильно компилируется, если я вызываю функцию напрямую в качестве аргумента в mixin, но в идеале я хотел бы иметь возможность просто использовать имя переменной, чтобы одна и та же переменная могла использоваться повсеместно (если по какой-то причине изменено, что возможно, было бы больно обращаться к каждому миксину и обновлять аргументы, а не просто полагаться на переменную!)