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.