在 Angular Material2 的官方主题文档中, 它清楚地说明了以下内容:
在 Angular Material 中,一个主题是通过组合多个调色板来创建的。特别是,一个主题包括:
- 主调色板:在所有屏幕和组件中使用最广泛的颜色。
- 重音调色板:用于浮动操作按钮和交互元素的颜色。
- 警告调色板:用于传达错误状态的颜色。
- 前景调色板:文本和图标的颜色。
- 背景调色板:用于元素背景的颜色。
但在每个示例中,他们只修改前三个:
@import '~@angular/material/theming';
@include mat-core();
$candy-app-primary: mat-palette($mat-indigo);
$candy-app-accent: mat-palette($mat-pink, A200, A100, A400);
$candy-app-warn: mat-palette($mat-red);
$candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn);
@include angular-material-theme($candy-app-theme);
所以我的问题是:如何更改前景调色板以更改主调色板或辅助调色板的文本颜色?
有一些网站( materialpalette.com 、 material.io )显示了调色板以便于可视化,但他们仍然没有说明如何在 Angular Material2 中包含或修改该调色板。
原文由 CodeArtist 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以通过创建自己的前景图来更改默认主题颜色,并在初始化之前将其合并到创建的主题中。方法如下:
@angular/material/_theming.scss
->$mat-light-theme-foreground
函数中定义的前景图。您可以使用地图并仅定义您想要的字段并将其他字段保留为默认值。
注意: 由于 SCSS 中的所有地图都是不可变的,
map-merge()
返回新的地图实例并且不会修改地图 - 因此我们有另一个变量$my-app-theme-custom
来保存结果主题。注意: 我正在使用 Angular Material v2.0.0-beta.8
编辑 2020 年 10 月: -我已将属性
slider-min
添加到地图中,因为评论中的几个人报告说它是在以后的版本中添加到前景地图中的。