Если условие (первый аргумент) выполнено, тогда используйте второй аргумент, если не третий.
Например:
if(true, blue, red) // Outputs "blue"
if(false, blue, red) // Outputs "red"
Встроенный if ()Функция позволяет переходить по условию и возвращает только один из двух возможных результатов.Может использоваться в любом контексте скрипта.Функция if оценивает только аргумент, соответствующий тому, который будет возвращен - это позволяет вам ссылаться на переменные, которые не могут быть определены, или проводить вычисления, которые в противном случае могли бы вызвать ошибку (например, деление на ноль).
В вашем случае:
$should-use-modal: if(global-variable-exists(use-modal), $use-modal, false) !default;
@if $should-use-modal {
.modal {
color: red;
}
}
не будет выводить css, поскольку переменная $should-use-modal
не определена, поэтому $should-use-modal
имеет значение false (назначается в качестве третьего аргумента функции if).Но если вы определите переменную:
$use-modal: something;
$should-use-modal: if(global-variable-exists(use-modal), $use-modal, false) !default;
@if $should-use-modal {
.modal {
color: red;
}
}
выведет следующее css
, потому что переменная определена.
.modal {
color: red;
}
Надеюсь, это поможет.
Подробнее оsass conditionals здесь .