我正在Laravel中开发一些自定义样式,并覆盖默认的引导颜色变量。
这是在我的app.scss里面
@import '~bootstrap/scss/bootstrap';
@import "node_modules/font-awesome/scss/font-awesome.scss";
$primary: #625BF6;
$danger: #ff4136;
.btn-primary {
--bs-btn-bg: $primary;
--bs-btn-hover-bg: #6b64f5;
--bs-btn-active-bg: #534bf3;
}
我还对webpack.mix.js进行了修改,使用sass作为编译器
mix.js('resources/js/app.js', 'public/js')
.sass('resources/css/app.scss', 'public/css');
但是,即使在运行npm watch或npm run dev之后,变量$primary也不会被替换。
为什么会这样?
编辑:我不认为这是关于引导或变量的顺序了。变量只是没有被替换。
4条答案
按热度按时间7gcisfzg1#
这是最近SCSS版本中的breaking change。原因是
$primary
实际上是CSS变量的有效值,因此它不再被自动替换(如果这是您想要输入的)。要获得要使用的实际SCSS变量,您需要使用插值:0tdrvxhp2#
也许这个能帮到你
参考:https://laravel.com/docs/8.x/mix#watching-assets-for-changes
1tu0hz3e3#
尝试定义变量,然后导入它。
则
npm watch
或npm run dev
z4bn682m4#
sass值被替换为一个常规属性,而不是css变量
因此,看起来sass不支持从sass变量设置css变量。