Angular 如何在材质角度构件样式中替代Sass变量?

Angular 如何在材质角度构件样式中替代Sass变量?,angular,sass,angular-material,material-design,scss-mixins,Angular,Sass,Angular Material,Material Design,Scss Mixins,我现在正在寻找一个整体来解决我的问题。在我的公司,我必须为我们的项目设计材料,这太尴尬了,根本没有办法通过sass变量(我的意思是,不仅仅是颜色和字体)进行设计。由于这种不可能的封装等原因,我无法覆盖很多样式。我的工作太慢了。如果我可以覆盖像从_button-base.scss这样的变量,那就不会那么令人沮丧了。。。我不能使用viewEncapsulation。在很多建议中都没有类似的 我不太了解Sass,所以我可能看不到结果。怎么可能不按变量设置样式,这里有所有的材料sass文件。 我只找到一

我现在正在寻找一个整体来解决我的问题。在我的公司,我必须为我们的项目设计材料,这太尴尬了,根本没有办法通过sass变量(我的意思是,不仅仅是颜色和字体)进行设计。由于这种不可能的封装等原因,我无法覆盖很多样式。我的工作太慢了。如果我可以覆盖像从_button-
base.scss
这样的变量,那就不会那么令人沮丧了。。。我不能使用
viewEncapsulation。在很多建议中都没有类似的

我不太了解Sass,所以我可能看不到结果。怎么可能不按变量设置样式,这里有所有的材料sass文件。 我只找到一个这样的答案:

.mat按钮{
@扩展%mat按钮底座;
}

但这对我不起作用。有人有其他解决方案吗?

您应该在棱角材质站点:

选项1:将$mat靛蓝、$mat粉红色和$mat红色更改为您选择的材质选项板

@import'~@angular/material/theming';
@包括mat-core();
$candy app primary:mat调色板($mat indigo);
$candy应用程序口音:垫子调色板($mat pink、A200、A100、A400);
$candy app warn:mat调色板($mat red);
$candy应用程序主题:mat light主题((
颜色:(
主要:$candy应用程序主要,
口音:$candy应用程序口音,
警告:$candy应用程序警告,
)
));
@包括角度材质主题($candy应用程序主题);
选项2: 通过使SCS更具体来覆盖它们

选项3: 使用::ng deep覆盖特定组件

另外,您确实不应该使用
viewEncapsulation.none

这就是angular的全部想法,它创建了封装组件。

谢谢您的回答。选项1只涉及颜色,但我有整个样式,如边框、高度等。我尝试使用ng deep和更具体的样式,但它并不总是有效,我只是浪费时间搜索越来越多的具体选择器(你为什么要改变材料?他们的团队花费大量的时间和金钱来创造一些非常好的东西。我建议如果你必须改变一些东西,你可以将其保持在最低限度。你有html和css的例子吗。这将帮助我帮你。)