Я использую рекомендации по стилю, указанные в https://material.angular.io/guide/theming-your-components
У моего компонента есть поле mat-form-field, где я хочу изменить цвет границы. Если я добавлю стиль ng-deep в файл component.s css, он будет применен в любом случае, как показано ниже:
:host ::ng-deep {
mat-form-field.active-field .mat-form-field {
&-flex {
border: 2px solid red;
}
}
}
Теперь я хочу, чтобы цвет границы оставался динамическим c и зависел от тема. У меня есть миксин, определенный в my-component-lib.theme.s css, который вызывается из файла глобальной темы приложения. Я попытался поместить в этот миксин тот же стиль, что и:
@mixin my-component-lib-theme($theme) {
$primary: map-get($theme, primary);
.component-container ::ng-deep {
mat-form-field.active-field .mat-form-field {
&-flex {
border: 2px solid lighten(mat-color($primary), 30);
}
}
}
}
Но он не работает. У меня есть несколько других стилей в миксине, которые не используют ng-deep
, и эти стили работают нормально. Так что, похоже, проблема в том, что ::ng-deep
в глобальной теме mixin. Как я могу решить это?