.loading { position: fixed; background: rgba(255, 255, 255, 0.6); top: 0; width: 100vw; height: 100%; z-index: -1000; opacity: 0; transition: opacity 0.3s ease-in-out; &.show { opacity: 1; z-index: 10000; } display: flex; justify-content: center; align-items: center; } .spinner { animation: rotate 2s linear infinite; z-index: 2; width: 50px; height: 50px; & .path { stroke: #3e76c8; stroke-linecap: round; animation: dash 1.5s ease-in-out infinite; } } @keyframes rotate { 100% { transform: rotate(360deg); } } @keyframes dash { 0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; } 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; } 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; } }