Возможно ли как-то вложить несколько переменных в одну переменную? Приведенный ниже код не выдает ошибку, но я понятия не имею, как назвать внутренний «первый» или «второй»
$themes: (
light: (
text: (
first: black,
second: grey
),
button: blue
),
);
map_get
, похоже, не работает, потому что он слишком глубоко вложен .
РЕДАКТИРОВАТЬ: Предоставленное решение Arkellys в основном работает. Проблема, которую я получил сейчас, заключается в том, что я хочу автоматизировать это с помощью простого вызова функции. Функция должна вызывать миксин, в котором темы должны стилизовать мои компоненты.
Миксин выглядит так:
@mixin theme($themes) {
@each $theme, $map in $themes {
.theme-#{$theme} & {
$theme-map: () !global;
@each $key, $submap in $map {
$value: map-get(map-get($themes, $theme), '#{$key}');
$theme-map: map-merge($theme-map, ($key: $value)) !global;
}
@content;
$theme-map: null !global;
}
}
}
, а функция, которая вызывает миксин, выглядит так:
@function theme($key) {
@return map-get($theme-map, $key);
}
В моем s css я называю это так:
.past {
@include theme($themes) {
color: theme('text-second');
}
}
Так как мне определить, использую ли я простое вложение 1-го уровня или уже вложение 2-го уровня?