-
+ Start at date
diff --git a/src/lib/datepicker/datepicker.md b/src/lib/datepicker/datepicker.md
index c2dcb2edb0cc..666b4e021bf1 100644
--- a/src/lib/datepicker/datepicker.md
+++ b/src/lib/datepicker/datepicker.md
@@ -99,6 +99,14 @@ As with other types of ``, the datepicker works with `@angular/forms` dir
+### Changing the datepicker colors
+
+The datepicker popup will automatically inherit the color palette (`primary`, `accent`, or `warn`)
+from the `mat-form-field` it is attached to. If you would like to specify a different palette for
+the popup you can do so by setting the `color` property on `mat-datepicker`.
+
+
+
### Date validation
There are three properties that add date validation to the datepicker input. The first two are the
diff --git a/src/lib/datepicker/datepicker.ts b/src/lib/datepicker/datepicker.ts
index 6106e5261158..47d102f4922f 100644
--- a/src/lib/datepicker/datepicker.ts
+++ b/src/lib/datepicker/datepicker.ts
@@ -153,7 +153,15 @@ export class MatDatepicker implements OnDestroy, CanColor {
@Input() startView: 'month' | 'year' = 'month';
/** Color palette to use on the datepicker's calendar. */
- @Input() color: ThemePalette;
+ @Input()
+ get color(): ThemePalette {
+ return this._color ||
+ (this._datepickerInput ? this._datepickerInput._getThemePalette() : undefined);
+ }
+ set color(value: ThemePalette) {
+ this._color = value;
+ }
+ _color: ThemePalette;
/**
* Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather
@@ -464,13 +472,10 @@ export class MatDatepicker implements OnDestroy, CanColor {
/** Passes the current theme color along to the calendar overlay. */
private _setColor(): void {
- const input = this._datepickerInput;
- const color = this.color || (input ? input._getThemePalette() : undefined);
-
+ const color = this.color;
if (this._popupComponentRef) {
this._popupComponentRef.instance.color = color;
}
-
if (this._dialogRef) {
this._dialogRef.componentInstance.color = color;
}
diff --git a/src/material-examples/datepicker-color/datepicker-color-example.css b/src/material-examples/datepicker-color/datepicker-color-example.css
new file mode 100644
index 000000000000..7432308753e6
--- /dev/null
+++ b/src/material-examples/datepicker-color/datepicker-color-example.css
@@ -0,0 +1 @@
+/** No CSS for this example */
diff --git a/src/material-examples/datepicker-color/datepicker-color-example.html b/src/material-examples/datepicker-color/datepicker-color-example.html
new file mode 100644
index 000000000000..c7e033273c8b
--- /dev/null
+++ b/src/material-examples/datepicker-color/datepicker-color-example.html
@@ -0,0 +1,13 @@
+
+ Inherited calendar color
+
+
+
+
+
+
+ Custom calendar color
+
+
+
+
diff --git a/src/material-examples/datepicker-color/datepicker-color-example.ts b/src/material-examples/datepicker-color/datepicker-color-example.ts
new file mode 100644
index 000000000000..f7474426ef47
--- /dev/null
+++ b/src/material-examples/datepicker-color/datepicker-color-example.ts
@@ -0,0 +1,9 @@
+import {Component} from '@angular/core';
+
+/** @title Datepicker palette colors */
+@Component({
+ selector: 'datepicker-color-example',
+ templateUrl: 'datepicker-color-example.html',
+ styleUrls: ['datepicker-color-example.css'],
+})
+export class DatepickerColorExample {}