@use "../abstracts/themes"; /*! Magic Waving Hand Emojiā„¢ | MIT License | jrvs.io/wave */ .wave { display: inline-block; animation: wave 5s infinite; animation-delay: 1s; transform-origin: 65% 80%; will-change: transform; } .beat { display: inline-block; animation: beat 10s infinite; // 6 bpm, call 911 if you see this please. animation-delay: 7.5s; // offset from wave animation will-change: transform; } // modified from https://tobiasahlin.com/spinkit/ .spinner { text-align: center; > div { display: inline-block; animation: loader 1.4s infinite ease-in-out both; @include themes.themed(background-color, "medium-light"); } .spin-bounce1 { animation-delay: -0.32s; } .spin-bounce2 { animation-delay: -0.16s; } } @keyframes wave { 0% { transform: rotate(0deg); } 5% { transform: rotate(14deg); } 10% { transform: rotate(-8deg); } 15% { transform: rotate(14deg); } 20% { transform: rotate(-4deg); } 25% { transform: rotate(10deg); } 30% { transform: rotate(0deg); } // pause for 3.5 out of 5 seconds 100% { transform: rotate(0deg); } } @keyframes beat { 0% { transform: scale(1); } 2% { transform: scale(1.25); } 4% { transform: scale(1); } 6% { transform: scale(1.2); } 8% { transform: scale(1); } // pause for ~9 out of 10 seconds 100% { transform: scale(1); } } @keyframes loader { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(0.6); } } // https://web.dev/prefers-reduced-motion/#(bonus)-forcing-reduced-motion-on-all-websites @media (prefers-reduced-motion: reduce) { *, ::before, ::after { animation-delay: -1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; transition-delay: 0s !important; } }