Как получить значение css custom properties в sass

Хочу отказаться от использования scss переменных в пользу  css custom properties. Но как оказалось  css custom properties нельзя использовать в media queries.  Для создания миксинов с брейкпоинтами приходится использовать scss переменные.

Получается дублирование значений:

$breakpoint-mobile: 375;
$breakpoint-tablet: 760;
$breakpoint-desktop: 1200;
$breakpoint-salt: 0.2;
$base-unit: 1px;

:root {
    --breakpoint-mobile: #{$breakpoint-mobile};
    --breakpoint-tablet: #{$breakpoint-tablet};
    --breakpoint-desktop: #{$breakpoint-desktop};
    --base-unit: #{$base-unit};
}

Я могу как то получить значение custom properties в scss?

:root {
    --breakpoint-mobile: 375;
    --breakpoint-salt: 0.2;
    --base-unit: 1px;
}

@mixin breakpoint_upper-mobile() {
    $width: (var(--breakpoint-mobile) - var(--breakpoint-salt)) * var(--base-unit);
    // $width: (375 - 0.2) * 1px; = 374.8px
    @media (min-width: $width) {
        @content;
    }
}

Есть какой-то способ получить значение в scss
`--breakpoint-mobile`, `--breakpoint-salt`, `--base-unit`
для вычислений?

Ответы (1 шт):

Автор решения: Evgeniy Leonidov

Напрямую использовать CSS Custom Properties в SCSS для вычислений или в медиа-запросах невозможно. Это всё потому, что SCSS компилируется в CSS на этапе разработки, до того, как браузер начнет обрабатывать CSS. А CSS переменные обрабатываются браузером во время исполнения, и их значения могут меняться динамически, в отличие от переменных Sass, значения которых фиксированы после компиляции.

→ Ссылка