I am using mat-calendar
. I am trying to highlight certain dates but I couldn't do it. There is no proper documentation for this.
HTML
<mat-card>
<mat-calendar name="appointment_date" [selected]="selectedDate (selectedChange)="onSelect($event)"></mat-calendar>
</mat-card>
TS
onSelect(event){
this.selectedDate= event;
}
What I need:
Complementing Fabian's answer, if you have problem seeing the highlighted color and you are using lazy loading
components, remember to add the ::ng-deep
in front of the class. Like this:
::ng-deep.special-date {
background-color: red;
}
Cheers!
You can use the the input binding
dateClass
as describe in the Angular Material documentation here. Note: This requires an Angular Material version of at least 7.1.0
Change your template to this:
<mat-calendar [dateClass]="dateClass()" [selected]="selectedDate" (selectedChange)="onSelect($event)"></mat-calendar>
And in your component add the dateClass
function which will generate a function that will return a type of MatCalendarCellCssClasses
, which can be as simple as a string representing the CSS class to apply (or an array of class names):
dateClass() {
return (date: Date): MatCalendarCellCssClasses => {
if (date.getDate() === 1) {
return 'special-date';
} else {
return;
}
};
}
And finally in your styles.css
add the classes you want applied:
.special-date {
background-color: red;
}
Here is a stackblitz that colors the first of each month in red.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With