我创建了一个新的 angular5 元素,在该元素上我将 Angular Material 用于前端组件 ( https://material.angular.io/
)。到目前为止一切都很好,但主要问题是如何添加自定义主题。我没有在这个元素中使用 scss 编译器,所以我所做的是将所有 css 组件导入 style.css 中
@import "~@angular/material/prebuilt-themes/indigo-pink.css";
@import "~app/components/test/test.component.css";
问题是我不知道如何修改预建主题的基色或为我的主题生成另一个具有其他基色的 css。
如果有人可以帮助我,我将不胜感激!
最佳答案
这是关于如何定义自己的主题的非常详细的指南(但您一定要查看上面@br.julien 发布的链接。):
注意:如果您很着急,只需向下滚动到此答案的底部即可获取整个源代码。
先决条件
.scss
. styles
中数组,更改 styles.css
至 styles.scss
:"styles": [
"styles.scss" // <- Change to this
]
开始
~@angular/material/theming
在您的顶部 styles.scss
:@import '~@angular/material/theming';
@include mat-core()
在 styles.scss
, 最好在导入行之后:@include mat-core();
primary
、 accent
和可选的 warn
),然后将它们分配给名为 mat-palette
的函数:// I suggest that you should use another prefix, but `my-app` is fine as well
// Primary colour
$my-app-primary: mat-palette($mat-indigo);
// Accent colour
$my-app-accent: mat-palette($mat-pink, A200, A100, A400);
对于所有调色板,请访问 source code (
_palette.scss
)。另外,请查看 Material.io guidelines 上的调色板是什么样子的.
angular-material-theme
的参数包含在内。 (把它放在你上面定义的变量之后):(注意:选择以下任一选项:)
轻主题:
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent);
@include angular-material-theme($my-app-theme);
黑暗主题:
$my-app-theme: mat-dark-theme($my-app-primary, $my-app-accent);
@include angular-material-theme($my-app-theme);
完整的源代码
这是一些 全源代码供您复制:)
styles.scss
@import '~@angular/material/theming';
@include mat-core();
$my-app-primary: mat-palette($mat-indigo);
$my-app-accent: mat-palette($mat-pink, A200, A100, A400);
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent);
@include angular-material-theme($my-app-theme);
(哇。所有这些只适用于 8 行代码。)
不管怎样,如果你想了解更多关于 Sass 的知识,请查看官方 documentation !
关于css - 如何修改angular material主题主色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47945306/