.spinner { display: inline-block; position: relative; border-radius: 50%; border: 2px solid transparent; border-top: 2px solid #1976d2; animation: spin 1s linear infinite; &--small { width: 16px; height: 16px; border-width: 1px; } &--medium { width: 20px; height: 20px; border-width: 2px; } &--large { width: 32px; height: 32px; border-width: 3px; } &__inner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60%; height: 60%; border-radius: 50%; border: 1px solid transparent; border-top: 1px solid currentColor; animation: spin 0.8s linear infinite reverse; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }