Похоже, что нет возможности изменить цвет значка матового степпера, вы можете использовать этот CSS в качестве обходного пути.
::ng-deep .mat-step-header .mat-step-icon-selected {
background-color: red;
}
:: ng-deep устарело и может быть удалено, также может использоваться
ViewEncapsulation.None в компонентном декораторе, чтобы избежать использования :: ng-deep
Обновление с решением проблемы
Пример файла html
<div class="yellow-theme"> <----- wrapper theme class
<button mat-raised-button (click)="isLinear = !isLinear" id="toggle-
linear">
{{!isLinear ? 'Enable linear mode' : 'Disable linear mode'}}
</button>
<mat-horizontal-stepper [linear]="isLinear" #stepper>
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Fill out your name</ng-template>
<mat-form-field>
<input matInput placeholder="Last name, First name"
formControlName="firstCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
<mat-step [stepControl]="secondFormGroup">
<form [formGroup]="secondFormGroup">
<ng-template matStepLabel>Fill out your address</ng-template>
<mat-form-field>
<input matInput placeholder="Address" formControlName="secondCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
<mat-step>
<ng-template matStepLabel>Done</ng-template>
You are now done.
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button (click)="stepper.reset()">Reset</button>
</div>
</mat-step>
</mat-horizontal-stepper>
создайте файл theme.scss и добавьте его в стили в angular.json
"styles": [
"src/styles.css",
"src/theme.scss"
]
примечание степпер примет цвет основного цвета
theme.scss
@import '~@angular/material/theming';
@include mat-core();
.yellow-theme {
$yellow-theme-primary: mat-palette($mat-yellow, 400);
$yellow-theme-accent: mat-palette($mat-yellow, 400);
$yellow-theme: mat-light-theme($yellow-theme-primary, $yellow-theme-accent);
@include angular-material-theme($yellow-theme);
}
Пользовательский класс темы может использоваться в любом приложении, просто обернуть любой компонент материала и использовать атрибут цвета primary, accent или warn, как определено в классе.
Компонент, обернутый в пользовательский класс, будет использовать этот цвет, если не цвет установлен из глобальной темы.