Ответ 1
Версия: "@угловой/материал": "^ 5.2.4",
Вы можете получить доступ к цветам с помощью опции panelClass + сгенерированный класс ".mat-simple-snackbar-action".
Мой пример:
snackbar.component.ts
private configSucces: MatSnackBarConfig = {
panelClass: ['style-succes'],
};
private configError: MatSnackBarConfig = {
panelClass: ['style-error'],
};
public snackbarSucces(message) {
this.snackBar.open(message, 'close', this.configSucces);
}
public snackbarError(message) {
this.snackBar.open(message, 'close', this.configError);
}
snackbar.component.css
.style-succes {
color: $primary-text;
background-color: $primary;
}
.style-succes .mat-simple-snackbar-action {
color: $primary-text;
}
.style-error {
color: $warn-text;
background-color: $warn;
}
.style-error .mat-simple-snackbar-action {
color: $warn-text;
}
Дополнительная информация Если вы используете mixin для пользовательских тем, вы можете сделать что-то подобное, чтобы получить все цвета:
@mixin snackbar($theme) {
$primary: mat-color(map-get($theme, primary));
$primary-text: mat-color(map-get($theme, primary), default-contrast);
$warn: mat-color(map-get($theme, warn));
$warn-text: mat-color(map-get($theme, warn), default-contrast);
.style-succes {
color: $primary-text;
background-color: $primary;
}
.style-succes .mat-simple-snackbar-action {
color: $primary-text;
}
.style-error {
color: $warn-text;
background-color: $warn;
}
.style-error .mat-simple-snackbar-action {
color: $warn-text;
}
}