If you have overwritten some existing Angular Material styling or any other styling that somehow affects the icon, it may cause an issue. Move the icon code outside of any styling and test. For me it was font-variant: small-caps; So I just moved it to the child element.
Google's Material Icons provides a long list of icons. Choose any one of them and add the name of the icon class to any HTML element within the < body > tag. In the following example, we have used the icon named accessibility that belongs to the action category.
MatIconRegistry. Service to register and display icons used by the <mat-icon> component. Registers icon URLs by namespace and name. Registers icon set URLs by namespace. Registers aliases for CSS classes, for use with icon fonts.
Add CSS stylesheet for Material Icons!
Add the following to your index.html:
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
Refer - https://github.com/angular/material2/issues/7948
For Angular 6+:
npm install material-design-icons
add the styles to angular.json:
"styles": [
"node_modules/material-design-icons/iconfont/material-icons.css"
]
If using SASS you only need to add this line to your main .scss
file:
@import url("https://fonts.googleapis.com/icon?family=Material+Icons");
If you prefer to avoid fetching icons from google you can also self-host the icons as described in Material Icons Guide:
For those looking to self host the web font, some additional setup is necessary. Host the icon font in a location, for example https://example.com/material-icons.woff and add the following CSS rule:
@font-face { font-family: 'Material Icons'; font-style: normal; font-weight: 400; src: url(https://example.com/MaterialIcons-Regular.eot); /* For IE6-8 */ src: local('Material Icons'), local('MaterialIcons-Regular'), url(https://example.com/MaterialIcons-Regular.woff2) format('woff2'), url(https://example.com/MaterialIcons-Regular.woff) format('woff'), url(https://example.com/MaterialIcons-Regular.ttf) format('truetype'); }
In addition, the CSS rules for rendering the icon will need to be declared to render the font properly. These rules are normally served as part of the Google Web Font stylesheet, but will need to be included manually in your projects when self-hosting the font:
.material-icons { font-family: 'Material Icons'; font-weight: normal; font-style: normal; font-size: 24px; /* Preferred icon size */ display: inline-block; line-height: 1; text-transform: none; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; /* Support for all WebKit browsers. */ -webkit-font-smoothing: antialiased; /* Support for Safari and Chrome. */ text-rendering: optimizeLegibility; /* Support for Firefox. */ -moz-osx-font-smoothing: grayscale; /* Support for IE. */ font-feature-settings: 'liga'; }
In my case, there was a style applied that overrides font family. So, I added font family style explicitly like this:
.material-icons{
font-family: 'Material Icons' !important;
}
You must import MatIconModule and use the following url in index.html
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
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