I had fun tinkering with animations and making these spinners. I plan to add more during my free time to see how interesting they can get.
A Pen by Jakob Lewis on CodePen.
I had fun tinkering with animations and making these spinners. I plan to add more during my free time to see how interesting they can get.
A Pen by Jakob Lewis on CodePen.
| <div class="container"> | |
| <div class="canvas canvas1"> | |
| <div class="spinner1 spinnerMax"> | |
| <div class="spinner1 spinnerMid"> | |
| <div class="spinner1 spinnerMin"></div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="canvas canvas2"> | |
| <div class="spinner2"></div> | |
| <div class="hourHand"></div> | |
| <div class="dot"></div> | |
| </div> | |
| <div class="canvas canvas3"> | |
| <div class="spinner3"></div> | |
| </div> | |
| <div class="canvas canvas4"> | |
| <div class="spinner4"></div> | |
| </div> | |
| <div class="canvas canvas5"> | |
| <div class="spinner5"></div> | |
| </div> | |
| <div class="canvas canvas6"> | |
| <div class="spinner6 p1"></div> | |
| <div class="spinner6 p2"></div> | |
| <div class="spinner6 p3"></div> | |
| <div class="spinner6 p4"></div> | |
| </div> | |
| </div> |
| body { | |
| background: #263238; | |
| background-size: cover; | |
| margin: 0; | |
| padding-top: 5em; | |
| padding-bottom: 5em; | |
| } | |
| .container { | |
| display: flex; | |
| flex-wrap: wrap; | |
| height:; | |
| justify-content: space-around; | |
| margin: 0 auto; | |
| max-width: 650px; | |
| min-width: 200px; | |
| } | |
| .canvas { | |
| align-items: center; | |
| background: #eeeeee; | |
| border-radius: 50%; | |
| box-shadow: 0 5px 20px rgba(0,0,0,0.2); | |
| display: flex; | |
| height: 10em; | |
| justify-content: center; | |
| margin: 1em 1em 2em 1em; | |
| width: 10em; | |
| } | |
| /* Spinner 1 starts here */ | |
| .spinner1 { | |
| align-items: center; | |
| border: .3em solid transparent; | |
| border-top: .3em solid #4DB6AC; | |
| border-right: .3em solid #4DB6AC; | |
| border-radius: 100%; | |
| display: flex; | |
| justify-content: center; | |
| } | |
| .spinnerMax { | |
| animation: spinnerOne 3s linear infinite; | |
| height: 3em; | |
| width: 3em; | |
| } | |
| .spinnerMid { | |
| animation: spinnerOne 5s linear infinite; | |
| height: 2.4em; | |
| width: 2.4em; | |
| } | |
| .spinnerMin { | |
| animation: spinnerOne 5s linear infinite; | |
| height: 1.8em; | |
| width: 1.8em; | |
| } | |
| @keyframes spinnerOne { | |
| 0% { | |
| transform: rotate(0deg) | |
| } | |
| 100% { | |
| transform: rotate(360deg) | |
| } | |
| } | |
| /* Spinner 1 ends here */ | |
| /* Spinner 2 starts here */ | |
| .canvas2 { | |
| position: relative; | |
| } | |
| .spinner2 { | |
| animation: spinnerTwo 1s linear infinite; | |
| background: #4DB6AC; | |
| border-radius: 100px; | |
| height: 3em; | |
| transform-origin: top; | |
| position: absolute; | |
| top: 50%; | |
| width: .22em; | |
| } | |
| .hourHand { | |
| animation: spinnerTwo 7s linear infinite; | |
| background: #4DB6AC; | |
| border-radius: 100px; | |
| height: 2em; | |
| transform-origin: top; | |
| position: absolute; | |
| top: 50%; | |
| width: .2em; | |
| } | |
| .dot { | |
| background: #4DB6AC; | |
| border-radius: 100%; | |
| height: .5em; | |
| width: .5em; | |
| } | |
| @keyframes spinnerTwo { | |
| 0% { | |
| transform: rotate(0deg) | |
| } | |
| 100% { | |
| transform: rotate(360deg) | |
| } | |
| } | |
| /* Spinner 2 ends here */ | |
| /* Spinner 3 starts here */ | |
| .spinner3 { | |
| animation: spinnerThree 1s linear infinite; | |
| background: #4DB6AC; | |
| border-radius: 100%; | |
| width: 3em; | |
| height: 3em; | |
| } | |
| @keyframes spinnerThree { | |
| 0%, 35% { | |
| background: #4DB6AC; | |
| transform: scale(1); | |
| } | |
| 20%, 50% { | |
| background: #80CBC4; | |
| transform: scale(1.3); | |
| } | |
| } | |
| /* Spinner 3 ends here */ | |
| /* Spinner 4 starts here */ | |
| .spinner4 { | |
| animation: spinnerFour 1s linear infinite; | |
| border: solid 7px transparent; | |
| border-top: solid 7px #4DB6AC; | |
| border-radius: 100%; | |
| width: 3em; | |
| height: 3em; | |
| } | |
| @keyframes spinnerFour { | |
| 0% { | |
| transform: rotate(0deg); | |
| } | |
| 100% { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| /* Spinner 4 ends here */ | |
| /* Spinner 5 starts here */ | |
| .spinner5 { | |
| animation: spinnerFive 1s linear infinite; | |
| border: solid 1.5em #4DB6AC; | |
| border-right: solid 1.5em transparent; | |
| border-left: solid 1.5em transparent; | |
| border-radius: 100%; | |
| width: 0; | |
| height: 0; | |
| } | |
| @keyframes spinnerFive { | |
| 0% { | |
| transform: rotate(0deg); | |
| } | |
| 50% { | |
| transform: rotate(60deg) | |
| } | |
| 100% { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| /* Spinner 5 ends here */ | |
| /* Spinner 6 starts here */ | |
| .spinner6 { | |
| background: #4DB6AC; | |
| border-radius: 50%; | |
| height: 1em; | |
| margin: .1em; | |
| width: 1em; | |
| } | |
| .p1 { | |
| animation: fall 1s linear .3s infinite; | |
| } | |
| .p2 { | |
| animation: fall 1s linear .2s infinite; | |
| } | |
| .p3 { | |
| animation: fall 1s linear .1s infinite; | |
| } | |
| .p4 { | |
| animation: fall 1s linear infinite; | |
| } | |
| @keyframes fall { | |
| 0% { | |
| transform: translateY(-15px); | |
| } | |
| 25%, 75% { | |
| transform: translateY(0); | |
| } | |
| 100% { | |
| transform: translateY(-15px); | |
| } | |
| } | |
| /* Spinner 6 ends here */ | |
| @media (max-width: 600px) { | |
| .container { | |
| align-items: center; | |
| flex-direction: column; | |
| } | |
| .canvas { | |
| margin: 1em; | |
| } | |
| } |