.loading-spinner { display: flex; align-items: center; justify-content: center; &.centered { margin: 120px auto; } &.include-container { background-color: $core-white; box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1); border-radius: 8px; width: 48px; height: 48px; } .loader { position: relative; margin: 0 auto; &:before { content: ""; display: block; padding-top: 100%; } } &.medium { .loader { width: 34px; } } &.small { .loader { width: 23px; } } &.x-small { .loader { width: 16px; } } &.button { background: none; position: absolute; width: auto; height: auto; top: auto; box-shadow: none; z-index: 9; margin: 0; padding: 0; &.white { .path { stroke: $core-white; } } .loader { width: 23px; } .background { display: none; } } .circular { animation: rotate 2s linear infinite; height: 100%; transform-origin: center center; width: 100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; } .path { stroke-dasharray: 1, 200; stroke-dashoffset: 0; stroke: $core-vibrant-blue; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; } .background { stroke: $ui-vibrant-blue-25; } @keyframes rotate { 100% { transform: rotate(360deg); } } @keyframes dash { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 89, 200; stroke-dashoffset: -35px; } 100% { stroke-dasharray: 89, 200; stroke-dashoffset: -124px; } } }