Я работаю с темой Angular Material в проекте Angular 6, у меня есть 3 файла стилей:
1) styles.scss (основной файл стилей, он определен в файле Angular.json)
@import "styles/themes/blue-light.scss";
// Basics
* {
margin: 0;
padding: 0;
}
...
2) blue-light.scss (стиль с цветовыми определениями угловых материалов)
@import '~@angular/material/theming';
@import '../custom-theme.scss';
@include mat-core();
$my-app-primary: mat-palette($mat-blue, 900);
$my-app-accent: mat-palette($mat-light-blue, 500, 900, A100);
$my-app-warn: mat-palette($mat-deep-orange);
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent, $my-app-warn);
@include angular-material-theme($my-app-theme);
@include custom-theme($my-app-theme);
3) custom-theme.scss (файл, когда я использую основные цвета палитры в своем пользовательском приложениикомпоненты)
// Import library functions for theme creation.
@import '~@angular/material/theming';
@mixin custom-theme($theme) {
// Extract the palettes you need from the theme definition.
$primary: map-get($theme, primary);
$accent: map-get($theme, accent);
.mat-nav-list .active {
background: mat-color($primary, 50);
color: mat-color($primary);
}
}
На данный момент код работает, но я хочу оптимизировать его, я прочитал в следующей статье Material , что файлы пользовательских тем не должны импортироватьсяв другие файлы SCSS.Это будет дублировать стили в вашем выводе CSS.Если вы хотите использовать свой объект определения темы (например, $ custom-theme в моем случае) в других файлах SCSS, то определение объекта темы следует разбить на его собственный файл, отдельно от включения mat-core иМиксины angular-material-theme.
Не могу понять, что это значит и как это следует реализовывать, мне нужно руководство по созданию пользовательских тем и как эффективно импортировать файлы стилей