@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/ .loading { text-align: center; > div { display: inline-block; animation: loading 1.5s infinite ease-in-out both; // stylelint-disable rule-empty-line-before &:nth-child(1) { animation-delay: -0.32s; } &:nth-child(2) { animation-delay: -0.16s; } &:nth-child(3) { animation-delay: 0s; } // stylelint-enable rule-empty-line-before @include themes.themed( ( background-color: "medium-light", ) ); } } @keyframes wave { // stylelint-disable rule-empty-line-before 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); } // stylelint-enable rule-empty-line-before } @keyframes beat { // stylelint-disable rule-empty-line-before 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); } // stylelint-enable rule-empty-line-before } @keyframes loading { // stylelint-disable rule-empty-line-before 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(0.6); } // stylelint-enable rule-empty-line-before } // 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; } }