如何更改 angular material md-primary 按钮的文本颜色?

How do i change the angular material md-primary button text color?

基本上我这辈子都想不出如何使用 angular material 设置按钮的文本颜色以及使用 md-primary 背景颜色的其他任何东西。

我用来创建主题的代码是

var customPrimary = {
        '50': '#7de3cf',
        '100': '#69dec8',
        '200': '#54dac0',
        '300': '#3fd5b8',
        '400': '#2dceaf',
        '500': '#28b99d',
        '600': '#23a48b',
        '700': '#1f8f79',
        '800': '#1a7a68',
        '900': '#166556',
        'A100': '#92e8d7',
        'A200': '#a7ecdf',
        'A400': '#bcf1e7',
        'A700': '#115044'
    };
    $mdThemingProvider
        .definePalette('customPrimary',
        customPrimary);
    $mdThemingProvider.theme('buttons')
        .primaryPalette('customAccent');

但是无论我尝试什么,我都可以将文本颜色设置为 #fff 除非我使用 css 和 !important 我想避免的,因为这意味着覆盖几个选择器。

来自docs

angular.module('myApp', ['ngMaterial'])
.config(function($mdThemingProvider) {
  $mdThemingProvider.definePalette('amazingPaletteName', {
    '50': 'ffebee',
    ...
    'A700': 'd50000',
    'contrastDefaultColor': 'light',    // whether, by default, text (contrast)
                                        // on this palette should be dark or light
    'contrastDarkColors': ['50', '100', //hues which contrast should be 'dark' by default
     '200', '300', '400', 'A100'],
    'contrastLightColors': undefined    // could also specify this if default was 'dark'
  });
  $mdThemingProvider.theme('default')
    .primaryPalette('amazingPaletteName')
});

这里重要的是contrastDarkColors/contrastLightColors。 "contrast" 颜色是显示在按钮上的文本(或图标)颜色。

我猜你会想要这样的东西

'contrastDefaultColor': 'light',
'contrastDarkColors': ['50', '100', '200', '300', 'A100', 'A400']

编辑:如果您出于某种原因想要在按钮上使用颜色,创建一个带有 !important 的 class 就可以了,例如

.md-button.cyan-text {
    color: cyan !important;
}

<md-button class="md-primary md-raised cyan-text">Hello world</md-button>