Как изменить цвет шрифта основной палитры в Angular Material2?
в официальном тематическая документация углового Material2 в нем четко указано следующее:
в Angular Material тема создается путем создания нескольких палитр. В частности, тема состоит из:
- основная палитра: цвета, наиболее широко используемых на всех экранах и комплектующие.
 - палитра акцентов: цвета, используемые для кнопки плавающего действия и интерактивных элементов.
 - предупреждения палитра: цвета, используемые для передачи состояния ошибки.
 - палитра переднего плана: цвета для текста и значков.
 - фоновая палитра: цвета, используемые для элементов фона.
 
но в каждом примере они изменяют только первые три:
@import '~@angular/material/theming';
@include mat-core();
$candy-app-primary: mat-palette($mat-indigo);
$candy-app-accent:  mat-palette($mat-pink, A200, A100, A400);
$candy-app-warn:    mat-palette($mat-red);
$candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn);
@include angular-material-theme($candy-app-theme);
Итак, мой вопрос: Как я могу изменить палитру переднего плана, чтобы изменить цвет текста для первичной или вторичной палитры?
есть некоторые веб-сайты (materialpalette.com, материал.Ио), которые показывают цветовую палитру для легкой визуализации, но все же они не говорят, Как включить или изменить эту палитру в Angular Material2.
3 ответов
вы можете изменить цвет темы по умолчанию, создав свою собственную карту переднего плана и объединить ее в созданную тему перед ее инициализацией. Вот как:
- 
создайте объект темы, как обычно.
@import '@angular/material/theming.scss'; @include mat-core(); // Choose colors $my-app-primary: mat-palette($mat-blue-grey); $my-app-accent: mat-palette($mat-light-green); $my-app-warn: mat-palette($mat-red); // Build theme object (its practically a map object) $my-app-theme: mat-light-theme($my-app-primary, $my-app-accent, $my-app-warn); - 
создайте свой собственный передний план, используя пользовательскую функцию, возвращающую карту переднего плана, как определено в
@angular/material/_theming.scss-> 
руководство доступно на веб-сайте документации, расположенном здесь.
во-первых, вы определите палитры для вашей темы, такие как $primary, $accent, $warn (в руководстве у них $candy-app- префикс), а затем создать ушел. Вы можете сделать глобальный поиск для него, хотя: '$mat-dark-theme-background: ('
_theming.scss есть все цвета, карты и все функции, как mat-color
вот код:
// Foreground palette for light themes.
$mat-light-theme-foreground: (
  base:            black,
  divider:         rgba(black, 0.12),
  dividers:        rgba(black, 0.12),
  disabled:        rgba(black, 0.38),
  disabled-button: rgba(black, 0.38),
  disabled-text:   rgba(black, 0.38),
  hint-text:       rgba(black, 0.38),
  secondary-text:  rgba(black, 0.54),
  icon:            rgba(black, 0.54),
  icons:           rgba(black, 0.54),
  text:            rgba(black, 0.87)
);
вы можете найти карту по адресу: \node_modules\@angular\material\core\theming\ _палитра.scss
пример получения "вторичного текста":
$foreground: map-get($theme, foreground);
.foreground-color {
  color: mat-color($foreground, secondary-text);
}