如何主题 angular material 组件形状?

How to theme angular material component shapes?

有什么方法可以在 angular material 中设置组件形状的主题吗?我知道 material 设计有一个形状概念,允许您为所有 small/medium/large 组件创建更圆润、更不圆润甚至切角。有没有办法在 angular material 中实现它?

如果不是,那么在 angular material 中全局自定义组件的最佳方式是什么?假设我要删除所有 <mat-button> 上的圆角?

简短的回答是 Angular Material 没有提供直接的方法。

"Theming" in Angular Material 仅限于颜色和排版。形状、间距、大小、边框等在某种程度上是 "hard-coded." 然而,几乎所有这些东西最终都是 CSS,当然总有一种方法可以自定义 CSS .例如定义一些全局样式来做类似的事情:

button.mat-button {
   border-radius: 0;
}

然后对每个要自定义的组件和每个 属性 执行此操作。

请注意,它不会总是那么简单,因为您需要了解所有组件的内部 DOM 和 class 结构,以便在需要的地方应用样式是。您还需要了解所有组件选项以及它们如何更改 DOM 和 class 结构。最重要的是,一些组件使用 ngStyle 动态注入样式,这可能无法覆盖。

长话短说 - "redesigning" Angular Material 充其量是大量工作,更现实地说不是 100% 可以实现。如果 Angular Material 不是您想要的,请使用其他内容。