如何更改 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>
基本上我这辈子都想不出如何使用 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>