如何主题角度材料组件形状?

Can*_*yb1 5 material-design angular-material angular-material-5 angular-material-6 angular-material-7

有没有办法在角度材料中主题组件形状?我知道材料设计有一个形状概念,它允许您为所有小/中/大组件创建更多圆角、更少圆角甚至切角。有没有办法在角材料中实现它?

如果不是,那么在角材料中全局自定义组件的最佳方法是什么?说我想删除 all 上的圆角<mat-button>

G. *_*ter 6

简短的回答是 Angular Material 没有提供一种直接的方法来做到这一点。

Angular Material 中的“主题化”仅限于颜色和排版。形状、间距、大小、边框等在某种程度上是“硬编码”的。然而,几乎所有这些东西最终都是 CSS,当然总有一种方法可以自定义 CSS。例如定义一些全局样式,它执行以下操作:

button.mat-button {
   border-radius: 0;
}
Run Code Online (Sandbox Code Playgroud)

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

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

长话短说 - “重新设计” Angular Material 充其量是很多工作,更现实的是不是 100% 可以实现的。如果 Angular Material 不是您想要的,请使用其他东西。

  • 奇怪的是 Angular Material 不符合他们自己的 Material 规范,像 vuetify 这样的 vue 库在这方面更成熟 (3认同)
  • 这就是我所害怕的。由于 Material Design 规范具有形状主题,我希望有某种方法可以在 Angular Material 中实现这一点。我希望 Angular Material 符合规范,并在未来允许形状主题化。我可以创建自己的组件,并且可能会走这条路。感谢您的详尽答复。 (2认同)