Для Angular 7 и Material 7 это сработало для меня:
/* Placeholder overrides */
:host ::ng-deep input::-webkit-input-placeholder {
color: rgba(255,255,255, 0.7) !important;
}
:host ::ng-deep input:-moz-placeholder { /* Firefox 18- */
color: rgba(255,255,255, 0.7) !important;
}
:host ::ng-deep input::-moz-placeholder { /* Firefox 19+ */
color: rgba(255,255,255, 0.7) !important;
}
:host ::ng-deep input:-ms-input-placeholder {
color: rgba(255,255,255, 0.7) !important;
}
Для подчеркивания я использовал ввод в виде структуры, но вы можете просто изменить используемый класс.
/* Appearance around each input/button to remove faded outline
but put the dark hover back in */
::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline {
color: transparent !important;
}
::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline-thick {
color: rgba(255, 255, 255, 0.87) !important;
}
Хотя я не думаю, что это лучший способ сделать это, особенно с использованием :: ng-deep, это единственное, что работает сейчас для определенного компонента, для меня.