css - 如何在 SCSS 中扩展变量的映射?
问题描述
我正在使用一个名为 Buefy 的包,它是 Bulma CSS 框架库的 Vue.js 包装器。Buefy 在其模板组件上放置一个属性/属性,称为type
(例如,type="is-warning"
)。根据Buefy 文档,术语“is-warning”是根据$colors
SCSS 中设置的变量预定义的:
所以我按照Buefy 的这些说明来自定义$colors
地图,但是我想做的是将这些说明中定义的初始 SCSS 保留在单个base.scss
文件中,然后使用我自己的自定义 SCSS 文件进行扩展。
我已将该base.scss
文件包含在我的 Vue 项目中,文件中包含以下代码段vue.config.js
:
module.exports = {
css: {
loaderOptions: {
sass: {
prependData: `
@import "@/assets/scss/base.scss";
`
}
}
}
}
所以我的问题是,如何使用自己的名称和值扩展$colors
地图?base.scss
这是一个片段base.scss
,其中$colors
定义了地图:
```css
$colors: (
"white": ($white, $black),
"black": ($black, $white),
"light": ($light, $light-invert),
"dark": ($dark, $dark-invert),
"primary": ($primary, $primary-invert),
"info": ($info, $info-invert),
"success": ($success, $success-invert),
"warning": ($warning, $warning-invert),
"danger": ($danger, $danger-invert),
"twitter": ($twitter, $twitter-invert)
);
```
所以,再一次,我的问题是如何将地图扩展到(可能在)$colors
之外的不同文件中以保持原始文件不变?base.scss
App.vue
我没有看到scss docs中显示的任何解决方案。
解决方案
您的自定义颜色值将放入一个名为 的变量(后来合并到$colors
)$custom-colors
中,它实际上在“派生变量”的文档中进行了描述。
并对其进行自定义:
// Import Bulma's core
@import "~bulma/sass/utilities/_all";
// Set your colors
$custom-colors: (
"facebook": ($blue, $white),
"linkedin": ($dark-blue, $white)
// etc.
);
// Setup $colors to use as bulma classes (e.g. 'is-twitter')
$colors: (
"white": ($white, $black),
"black": ($black, $white),
"light": ($light, $light-invert),
"dark": ($dark, $dark-invert),
"primary": ($primary, $primary-invert),
"info": ($info, $info-invert),
"success": ($success, $success-invert),
"warning": ($warning, $warning-invert),
"danger": ($danger, $danger-invert),
"twitter": ($twitter, $twitter-invert)
);
// Import Bulma and Buefy styles
@import "~bulma";
@import "~buefy/src/scss/buefy";
它在内部使用一个名为mergeColorMaps
.
推荐阅读
- javascript - 你如何近似 Node.js 中的同步编程?
- python - 在 python 扩展中创建可连接线程的最安全方法
- cassandra - Cassandra 堆大小配置不变
- django - 如何在 django admin 上抑制对相关模型的控制
- xml - 如何通过读取解析来自 rss xml 的额外属性
- jquery - 在 Chrome 上的 AJAX 调用返回后,用于分页的 CSS 将不起作用
- javascript - 如何将css导入pdf,cordova-pdf-generator?
- r - 遍历 ksvm 并拉系数
- python - 检测共享边的矩形
- python - 名称 'coco' 未定义