Uważam, że trzeba będzie utworzyć palety zarówno dla czerni, jak i bieli. Na przykład:
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');
});
Naturalnie można odtworzyć resztę każdej palety. Należy zauważyć, że "contrastDefaultColor" jest ważne, aby uzyskać odpowiedni kolor tekstu w każdym przypadku. Ponadto niestety wydaje się, że trzeba zdefiniować całą paletę kolorów. Innym rozwiązaniem, jeśli nie chcesz, aby stworzyć zupełnie nowe palety jest rozszerzenie istniejącej palety:
var blackPalette = $mdThemingProvider.extendPalette('grey', { '500': '000000' });
$mdThemingProvider.definePalette('black', blackPalette);
https://material.angularjs.org/latest/Theming/03_configuring_a_theme
Dzięki. Z grubsza działa. Niektóre rzeczy wciąż nie jestem pewien. Co oznaczają klawisze tematyczne? Rozumiem, że odpowiadają one 'md-hue-1',' md-hue-2', ale to nie wyjaśnia, dlaczego te klucze są używane. Czy użycie 'md-hue-x' nie byłoby bardziej przejrzyste niż użycie' A700', etc? Ponadto wciąż nie jestem pewien, od których odcieni są używane. Jeśli moje css nigdy jawnie nie używa żadnych klas 'md-hue- *', które są używane? –
Przyciski md-hue- * służą do ustawiania odmian kolorów (takich jak A700), które mogą być używane przez dodanie klasy .md-hue- *, na przykład '.md-primary .md-hue-1' użyłaby odcień określony dla md-hue-1 w palecie podstawowej. Zgodnie z dokumentami domyślnymi ustawieniami barw są: 500, 300, 800, A100 dla podstawowego i warn (domyślnie 500, następnie md-hue-1 wynosi 300 itd.). Dodaje więc poziom niezależności, aby tę samą paletę można było zastosować w różny sposób, bez zmiany samej palety. –
To wszystko ma sens. Wydaje mi się, że ten interfejs API jest przeznaczony dla zaawansowanych użytkowników o złożonych przypadkach użycia przez podstawowego użytkownika. W każdym razie pomocna byłaby bardziej wyraźna dokumentacja zawierająca więcej przykładów. Oddam ci nagrodę, ale musisz poczekać 12 godzin. –