До Angular Material 6.x (я не знаю, что может измениться 7.x и т. Д.), Только три основные / акцентные / предупреждающие палитры доступны в теме. Это очень ограничивает, но есть одна вещь, которую вы можете сделать, чтобы мог бы быть полезным иногда - определить более одной темы.
Дополнительные темы дают вам дополнительные основные, акцентирующие и предупреждающие палитры. Затем вы можете применять разные темы к разным компонентам в зависимости от того, какой основной, акцентный и предупреждающий цвета вы хотите иметь для каждого компонента. (Вам может понадобиться заглянуть в исходный код Angular Material, чтобы понять, как это сделать, но это не так сложно - просто посмотрите, что делает angular-material-theme
mixin .)
Очевидно, что этот не * дает 1011 * больше вариантов цвета для каждого компонента, но позволяет использовать больше цветов в приложении и использовать альтернативные цвета для выбранных компонентов. Это как бы против идеи создания тематики в Material Design, поэтому используйте осторожно.
Например:
@import '~@angular/material/theming';
$main-theme: mat-light-theme($mat-purple, $mat-yellow, $mat-red);
$alternate-theme: mat-light-theme($mat-deep-purple, $mat-amber, $mat-red);
@include mat-core-theme($main-theme);
@include mat-autocomplete-theme($main-theme);
@include mat-badge-theme($alternate-theme);
...