You can add vertical align to the mat-icon element or .mat-icon class:
To override all material icons with global CSS: Stackblitz
.mat-icon {
vertical-align: middle;
}
ATENTION: If your text have capital letters, add negative margin to prevent visual issues on some browsers (Stackblitz demo).
Also you can simply use vertical-align: sub or vertical-align: bottom if fits better with your requirements. Check following alignment MDN demo
Using FLEX with a container element for each icon/text: Stackblitz
CSS:
.icon-text {
display: flex;
align-items: center;
}
HTML:
<div class="icon-text">
<mat-icon>home</mat-icon>
<span>Some text here 1</span>
</div>
To style a particular material icon with utility class: Stackblitz
In some global css file:
.v-align-middle {
vertical-align: middle;
}
HTML:
<div>
<mat-icon class="v-align-middle">home</mat-icon>
<span class="v-align-middle">Some text here 1</span>
</div>
** some css frameworks already have classes like this, eg: bootstrap 4 **
To style a particular material icon: Stackblitz
CSS:
.custom-class mat-icon {
vertical-align: middle;
}
/** or using the class .mat-icon */
.custom-class .mat-icon {
vertical-align: middle;
}
HTML:
<div class="custom-class">
<mat-icon>home</mat-icon>
<span>Some text here 1</span>
</div>