Google Material Icons alignment in Bootstrap buttons
Using Bootstrap class :
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<button type="button" class="btn btn-secondary d-flex justify-content-center align-content-between" (click)="refresh()" [disabled]="loading">
<i class="material-icons mr-1">refresh</i> <span>Refresh</span>
</button>
I use this.
It works for every button-size and icon-size. No additional classes nor elements and no flexbox. line-height: 0;
prevents that the icon affects the height of the button.
.material-icons {
vertical-align: middle;
line-height: 0 !important;
position: relative;
top: -1px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<!-- body -->
<button type="button" class="btn btn-danger btn-sm">
<span class="material-icons">delete</span> Supprimer
</button>
<button type="button" class="btn btn-danger btn-lg">
<span class="material-icons">delete</span> Supprimer
</button>
<button type="button" class="btn btn-danger btn-lg">
<span class="material-icons" style="font-size: 36px;">delete</span> Supprimer
</button>
<button type="button" class="btn btn-danger btn-lg">
<span class="material-icons" style="font-size: 12px;">delete</span> Supprimer
</button>
You could do something like this (inline styles on the button)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<!-- body -->
<button style="display: flex;align-items: center;padding:5px 10px;" type="button" class="btn btn-danger btn-sm">
<span class="material-icons">delete</span> Supprimer
</button>
but I'd imagine there is a better way. This is just the first thing that springs to mind.