从一个sass文件到另一个sass文件的sass键和值映射
我有多个scss文件 例如: main.scss:主文件包含一个颜色列表,这里我只使用了2个作为示例从一个sass文件到另一个sass文件的sass键和值映射,sass,node-modules,Sass,Node Modules,我有多个scss文件 例如: main.scss:主文件包含一个颜色列表,这里我只使用了2个作为示例 $ex-color-main: ( ‘red’: ( ‘bg’ : #bd1118, ‘text’ : #fff, ), ‘green’: ( ‘bg’ : #93b923, ‘text’ : #fff, ), ); $ex-print-bg: true !de
$ex-color-main: (
‘red’: (
‘bg’ : #bd1118,
‘text’ : #fff,
),
‘green’: (
‘bg’ : #93b923,
‘text’ : #fff,
),
);
$ex-print-bg: true !default;
$ex-print-color: true !default;
$color: $ex-color-main;
@if ($ex-color-classes == true) {
@each $key, $value in $color {
@include ex-create-classes($key, $value, $ex-print-bg, $ex-print-color);
}
}
@if ($ex-colors-cssvars == true) {
:root {
@each $key, $value in $color {
--ex-color--#{$key}: #{map-get($value, ‘bg’)};
--ex-fgcolor--#{$key}: #{map-get($value, ‘text’)};
}
}
}
我正在使用npm节点模块进行编译。主文件编译为css文件,如下所示:
ex-color-classes.css:
.ex-color--red {
color: #bd1118; }
.ex-color—-green {
color: #93b923; }
ex-color-css-vars.css:
:root {
—-ex-bg-—red: #bd1118;
—-ex-color-—red: #fff;
—-ex-bg—-green: #93b923;
—-ex-color—-green: #fff; }
page.scss:页面文件必须包含来自main和main的颜色,这是一个很长的列表
$ex-color-page: (
‘danger’: include keys and values from red,
‘success’: include keys and values from green,
);
我可以使用:
$ex-color-page: (
‘danger’: (
‘bg’: var(--ex-bg--red),
‘text’: var(--ex-color--red),
),
‘success’: (
‘bg’: var(--ex-bg--green),
‘text’: var(--ex-color--green),
),
);
但我想知道,有没有更干净、更好的方法将键和值从main.scss导入page.scss?因此我想出了一种更干净的方法:
$ex-color-page: (
‘danger’: map-get($ex-color-main, 'red'),
‘success’: map-get($ex-color-main, 'green'),
);