button.is-loading {
  display: grid;
  justify-items: center;
  align-items: center;
}

button.is-loading > * {
  grid-column-start: 1;
  grid-row-start: 1;
}

button.is-loading > span {
  visibility: hidden;
}

button > i.icon-loading {
  display: none;
}

button.is-loading > i.icon-loading {
  display: block;
  transform-origin: center;
  animation:spin 1s linear infinite;
}

@keyframes spin { 100% { transform:rotate(360deg); } }