_sass/components/_spinner.scss
// SCSS Spinner: Ellipsis

$spinner-size: 80px;
$dot-size: 10px;
$dot-spacing: 24px;
$spinner-color: var(--main-text-primary-color, #0D0D0D);

.lds-ellipsis {
  display: inline-block;
  position: relative;
  width: $spinner-size;
  height: 62px;
  display: none;

  div {
	position: absolute;
	top: 43px;
	width: $dot-size;
	height: $dot-size;
	border-radius: 50%;
	background: $spinner-color;
	animation-timing-function: cubic-bezier(0, 1, 1, 0);

	&:nth-child(1) {
	  left: 8px;
	  animation: lds-ellipsis1 0.6s infinite;
	}

	&:nth-child(2) {
	  left: 8px;
	  animation: lds-ellipsis2 0.6s infinite;
	}

	&:nth-child(3) {
	  left: 32px;
	  animation: lds-ellipsis2 0.6s infinite;
	}

	&:nth-child(4) {
	  left: 56px;
	  animation: lds-ellipsis3 0.6s infinite;
	}
  }
}

// Keyframes
@keyframes lds-ellipsis1 {
  0%   { transform: scale(0); }
  100% { transform: scale(1); }
}

@keyframes lds-ellipsis2 {
  0%   { transform: translate(0, 0); }
  100% { transform: translate($dot-spacing, 0); }
}

@keyframes lds-ellipsis3 {
  0%   { transform: scale(1); }
  100% { transform: scale(0); }
}