Búsqueda de sitios web

Aplicar estilo CSS a mat-snackbar en Angular


Me pregunto por qué he estado atascado con esto toda la tarde, y me resulta embarazoso que algo tan trivial sea tan difícil de hacer en Angular Material.

Estoy intentando aplicar un estilo personalizado a un snackbar una vez que se hace clic en un botón, este es mi código :

this.errormessagecard.open(error.error.message,'Esci', {panelClass : 'error-snackbar'});

Literalmente he intentado de todo:

En mi componente.css

.error-snackbar{
  background-color: red!important;
} 
error-snackbar{
  background-color: red!important;
}
::ng-deep .error-snackbar{
  background-color: red!important;

Y lo mismo en mi styles.css

Lo que obtengo siempre es el mismo resultado, que es este:

Resultado de la barra de snacks

Nada cambia, ¿por qué??

Respuesta #1

El uso correcto (en la versión actual 19) es declarar la clase CSS en root styles.css y luego establecerla en la propiedad panelClass

ejemplo

en la propiedad

panelClass: 'snackbar-warning'

en styles.css

.mat-mdc-snack-bar-container.snackbar-warning {
--mat-snack-bar-button-color: #fff;
--mdc-snackbar-container-color: #c40202;
--mdc-snackbar-supporting-text-color: #fff;
}

Respuesta #2

actualiza tu hoja de estilos con las nuevas etiquetas:

.error-snackbar {
  --mdc-snackbar-container-color: red;  
  --mat-snack-bar-button-color: white;
}