4

基本上我一生都无法弄清楚如何使用角度材料设置按钮的文本颜色以及使用 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我想避免这种情况,因为这意味着覆盖多个选择器。

4

1 回答 1

8

文档

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。“对比”颜色是显示在按钮上的文本(或图标)颜色。

我猜你会想要类似的东西

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

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

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

<md-button class="md-primary md-raised cyan-text">Hello world</md-button>
于 2016-01-27T16:11:30.800 回答