@charset "utf-8"; *{ margin: 0; padding: 0; box-sizing: border-box; } body{ display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #41004F; } .container{ position: relative; width: 100%; display: flex; justify-content: center; align-items: center; -webkit-box-reflect: below 1px linear-gradient(#0001,#0004); } .container .loader{ position: relative; width: 200px; height: 200px; border-radius: 50%; background: #41004F; animation: animate 2s linear infinite; } @keyframes animate{ 0%{ transform: rotate(0deg); } 100%{ transform: rotate(360deg); } } .container .loader:before{ content: ''; position: absolute; top: 0; left: 0; width: 50%; height: 100%; background: linear-gradient(to top, transparent, rgba(228,108,255,0.4) ); background-size: 100px 180px; background-repeat: no-repeat; border-top-left-radius: 100px; border-bottom-left-radius: 100px; } .container .loader:after{ content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 20px; height: 20px; background: #FF8DFA; border-radius: 50%; z-index: 10; box-shadow: 0 0 10px #FF8DFA, 0 0 20px #FF8DFA, 0 0 30px #FF8DFA, 0 0 40px #FF8DFA, 0 0 50px #FF8DFA, 0 0 60px #FF8DFA, 0 0 70px #FF8DFA, 0 0 80px #FF8DFA, 0 0 90px #FF8DFA, 0 0 100px #FF8DFA; } .container .loader span{ position: absolute; top: 20px; left: 20px; right: 20px; bottom: 20px; background: #41004F; border-radius: 50%; }