私は黒と白の両方のためのパレットを作成する必要があると信じています。例:
angular.module('myApp', ['ngMaterial'])
.config(function($mdThemingProvider) {
$mdThemingProvider.definePalette('black', {
'50': '000000',
'100': '000000',
'200': '000000',
'300': '000000',
'400': '000000',
'500': '000000',
'600': '000000',
'700': '000000',
'800': '000000',
'900': '000000',
'A100': '000000',
'A200': '000000',
'A400': '000000',
'A700': '000000',
'contrastDefaultColor': 'light'
});
$mdThemingProvider.definePalette('white', {
'50': 'ffffff',
'100': 'ffffff',
'200': 'ffffff',
'300': 'ffffff',
'400': 'ffffff',
'500': 'ffffff',
'600': 'ffffff',
'700': 'ffffff',
'800': 'ffffff',
'900': 'ffffff',
'A100': 'ffffff',
'A200': 'ffffff',
'A400': 'ffffff',
'A700': 'ffffff',
'contrastDefaultColor': 'dark'
});
$mdThemingProvider.theme('default')
.primaryPalette('black')
.backgroundPalette('white');
});
もちろん、各パレットの残りの部分を強調表示することができます。ここで注目すべき点は、それぞれの場合にテキストの色を正しく取得するために 'contrastDefaultColor'が重要であることです。また残念ながら、全体のカラーパレットを定義する必要があるようです。あなたは完全に新しいパレットを作成したくない場合は別のオプションは、既存のパレットを拡張することです:
var blackPalette = $mdThemingProvider.extendPalette('grey', { '500': '000000' });
$mdThemingProvider.definePalette('black', blackPalette);
https://material.angularjs.org/latest/Theming/03_configuring_a_theme
ありがとうございます。これはおおまかに機能します。私がまだ確信していないことがいくつかあります。テーマキーはどういう意味ですか?私はそれらが 'md-hue-1'、' md-hue-2'に対応していることを認識していますが、なぜそれらのキーが使われているのか説明していません。 'md-hue-x'を' A700'などを使用するよりも明瞭に使用しないでしょうか?また、私はまだどの色相が使用されているかについては不明です。私のCSSが明示的に 'md-hue- *'クラスを使用していない場合は、どの色相が使用されていますか? –
md-hue- *キーは、.md-hue- *クラスを追加することで使用できる色のバリエーション(A700など)を設定するためのもので、例えば '.md-primary .md-hue-1'はプライマリパレットのmd-hue-1に指定された色相。ドキュメントによると、デフォルトの色相設定は、500,300,800、A100 for primaryとwarn(デフォルトで500、次にmd-hue-1は300など)です。そのため、間接参照のレベルが追加され、パレット自体を調整することなく、複数のテーマで同じパレットを異なる方法で使用することができます。 –
これはすべて意味があります。このAPIは、基本ユーザーより複雑なユースケースを持つパワーユーザーをターゲットにしているようです。少なくとももっと明白な文書や例があれば助けになるでしょう。私は賞金を授与しますが、12時間待つ必要があります。 –