.loader { position: relative; display: block; width: $loader-size; height: $loader-size; color: $blue; vertical-align: middle; &:after { position: absolute; top: 0; inset-inline-start: 0; width: 100%; height: 100%; content: ''; border: 1px var(--#{$prefix}border-style); border-color: transparent; border-top-color: currentColor; border-inline-start-color: currentColor; border-radius: $border-radius-pill; animation: rotate-360 0.6s linear; animation-iteration-count: infinite; } } /** Dimmer */ .dimmer { position: relative; .loader { position: absolute; top: 50%; inset-inline-end: 0; inset-inline-start: 0; display: none; margin: 0 auto; transform: translateY(-50%); } &.active { .loader { display: block; } .dimmer-content { pointer-events: none; opacity: 0.1; } } } @keyframes animated-dots { 0% { transform: translateX(-100%); } } .animated-dots { display: inline-block; overflow: hidden; vertical-align: bottom; &:after { display: inline-block; content: '...'; animation: animated-dots 1.2s steps(4, jump-none) infinite; } }