Как изменить цвет шрифта основной палитры в 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);
}