Итак, допустим, у меня есть модуль SASS _module.scss
, который объявляет некоторые css переменные, называемые пользовательскими свойствами. Когда я сейчас загружаю этот модуль в другой SASS-стиль, назовем его main.scss
, у меня есть доступ ко всем SASS-переменным, миксинам, а также правилам, но нет пользовательских свойств внутри него? Я что-то упустил?
Файлы примеров:
//_module.scss
:root {
--some-variable: red;
}
// main.scss
@use 'module';
div {
background-color: var(module.--some-variable); // won't work, private property because of leading '-'
background-color: module.var(--some-variable); // won't work, would have been horrible syntax as well
}
Я мог бы использовать @import
, но это не рекомендуется и не рекомендуется (см. Документация SASS ). Я попытался включить переменные в чистый css файл module.css
, который скомпилирован, но не объявлял никаких пользовательских свойств во время выполнения, поскольку он напрямую переводит @use 'module'
из моего файла SASS в точно такой же в CSS - какие браузеры не понимают, очевидно. Он должен более или менее копировать содержимое чистого css файла, но это не так. Конечно, я мог бы попробовать написать в своих модулях миксины, которые устанавливают переменные, но это всего лишь обходной путь.
Я что-то упустил? Мне действительно нужно написать миксин, который устанавливает переменные и должен быть загружен? Это делает использование пользовательских свойств внутри модулей довольно громоздким.
РЕДАКТИРОВАТЬ
Забыл упомянуть, что background-color: var(--some-variable)
тоже не работает, хотя и должно в соответствии с документация , так как правила должны применяться напрямую, без определения области действия.