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, но в идеале я хотел бы иметь возможность просто использовать имя переменной, чтобы одна и та же переменная могла использоваться повсеместно (если по какой-то причине изменено, что возможно, было бы больно обращаться к каждому миксину и обновлять аргументы, а не просто полагаться на переменную!)

0 ответов

Другие вопросы по тегам