@MrDeners

Как передать в свойство SASS переменную, название которой в переменной JS?

const props = defineProps({
  backgroundColor: { type: String, default: '$light-paragraph-color' }
});


Представлен код на TS, где получаем props из родительского компонента (Vue.js). По умолчанию в переменную backgroundColor записывается значение $light-paragraph-color'.

.wrapper
  height: 100%
  width: 100%
  background-color: var(--backgroundColor)


В этом участке кода пытаюсь преобразовать значение переменной backgroundColor из строки в sass переменную, однако цвет фона не изменяется.

Подскажите, как решить?
  • Вопрос задан
  • 1614 просмотров
Пригласить эксперта
Ответы на вопрос 3
SkiperX
@SkiperX Куратор тега CSS
Js работает в браузере, там нет никакого sass. Он компилируется и идет в браузер в виде css.

Вам нужно определить css переменную в атрибуте style (через v-bind). Записать туда значение из js. Дальше в стилях использовать css переменную.

https://xhtml.ru/2021/javascript/sharing-data-betw...
Ответ написан
Комментировать
lazalu68
@lazalu68
Salmon
Строго говоря ответ уже дали - из коробки так не получится. Но если очень хочется, то технически возможностей реализаций уйма, sass-to-js например
Ответ написан
Комментировать
@smmaxim
Я наоборот из sass переменную подтягивал

_sass-theme.scss
$tab: 56rem;
$desk: 84.5rem;

// Переменные для экспорта
:export {
  tab: $tab;
  desk: $desk;
}


breakpoints.js
import variables from '@ui/_sass-theme.scss'

export const mediaQueryBreakpoints = {
  tab: parseFloat(variables.tab),
  desk: parseFloat(variables.desk),
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы