How to change size of mat-icon on Angular Material?

JavascriptHtmlCssAngular

Javascript Problem Overview


mat-icon tag of Angular Material always has default size is 24px. So how to change it ...???

.mat-icon {
background-repeat: no-repeat;
display: inline-block;
fill: currentColor;
height: 24px;
width: 24px;
}

Javascript Solutions


Solution 1 - Javascript

font-size tends to mess with the position. I do something like:

<mat-icon class="icon-display">home</mat-icon>

CSS:

.icon-display {
   transform: scale(2);
}

Where the 2 can actually be any number. 2 doubles the original size.

Solution 2 - Javascript

Since Angular Material uses 'Material Icons' Font-Family, the icon size depends on font-size.

Therefore, if you want to modify the size of the icon then you change its font-size in your CSS file.

For example,

.mat-icon {
  font-size: 50px;
}

Solution 3 - Javascript

In order to properly wrap the font apart from setting the font size you also need to adjust the height and width

If you want to do it globally:

.mat-icon {
    font-size: 50px;
    height: 50px ;
    width: 50px;
}

If you want to apply the size only to certain icons

.customIconSize {
    font-size: 50px;
    height: 50px ;
    width: 50px ;
}

And in your HTML template

<button mat-icon-button>
	<mat-icon class="customIconSize">visibility</mat-icon>
</button>

Solution 4 - Javascript

You should also change the width and height so the container matches the font-size.

Depending on your use case a good feature of the mat-icon is a bool input of [inline], set this to true and it will auto size to the element it's contained in.

Solution 5 - Javascript

Create the class name matches to the actual function. It become more easy to remember, use and extend it.

.icon-2x {
    transform: scale(2);
}

.icon-3x {
    transform: scale(3);
}

Solution 6 - Javascript

The "font-size" approach only works for regular (font-based) sizing. Thus it doesn't work for svg icons, which the only way to resize that really worked for me so far was scaling it up/down.

Solution 7 - Javascript

try first using:

.mat-icon{
    font-size: 10px;
}

If you can't, try in the following way:

.mat-icon {
    width: 10px;
}

Good luck !!!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNguyễn Ph&#250;cView Question on Stackoverflow
Solution 1 - JavascriptPeteyView Answer on Stackoverflow
Solution 2 - JavascriptholydragonView Answer on Stackoverflow
Solution 3 - JavascriptShakurView Answer on Stackoverflow
Solution 4 - JavascriptIamamellonView Answer on Stackoverflow
Solution 5 - JavascriptbrianView Answer on Stackoverflow
Solution 6 - JavascriptMarcos TrazziniView Answer on Stackoverflow
Solution 7 - JavascriptKarambia CukiaView Answer on Stackoverflow