Carga con anillo giratorio

Carga con anillo giratorio: botón en CSS. Copia las reglas, o el prompt que reproduce el resultado.

loadingspinnercss-animationsolid

CSS
.btn-082 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 600 14px/1 system-ui,sans-serif;
  color: #fff;
  background: #2563eb;
  border: 0;
  border-radius: 8px;
  padding: 12px 22px;
  cursor: progress;
  opacity: .85
}
.btn-082 i {
  width: 16px;
  height: 16px;
  border: 2.5px solid rgba(255,255,255,.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: btn-082-r .7s linear infinite
}
@keyframes btn-082-r {
  to {
    transform: rotate(360deg)
  }
}
.btn-082:hover {
  background: #2563eb
}
.btn-082:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 3px
}
.btn-082:active {
  transform: none
}
@media (prefers-reduced-motion: reduce) {
  .btn-082, .btn-082 * { animation: none; transition: none; }
}
HTML
<button class="btn-082" disabled><i></i>Saving</button>
Prompt

Un botón de carga azul #2563eb, deshabilitado, al 85% de opacidad, texto blanco de 14px semibold "Saving" con un anillo giratorio de 16px a la izquierda: un borde circular de 2.5px blanco al 35% con un segmento superior blanco sólido que da una vuelta cada 700ms. Radio de 8px, padding de 12px por 22px, cursor progress. Hover y active no cambian nada.