@layer utilities { .shake { animation: shake 400ms both; } @keyframes appear-then-fade { 0%,100% { opacity: 0; } 5%,60% { opacity: 1; } } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.4; } 100% { opacity: 1; } } /* Keyframes */ @keyframes react { 0% { transform: scale(0.85); opacity: 0; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(1); } } @keyframes scale-fade-out { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(0); opacity: 0; } } @keyframes shake { 0% { transform: translateX(-2rem); } 25% { transform: translateX(2rem); } 50% { transform: translateX(-1rem); } 75% { transform: translateX(1rem); } } @keyframes slide-up { from { transform: translateY(2rem); } to { transform: translateY(0); } } @keyframes slide-down { from { transform: translateY(0); } to { transform: translateY(2rem); } } @keyframes submitting { 0% { -webkit-mask-position: 0% 0%, 50% 0%, 100% 0% } 12.5% { -webkit-mask-position: 0% 50%, 50% 0%, 100% 0% } 25% { -webkit-mask-position: 0% 100%, 50% 50%, 100% 0% } 37.5% { -webkit-mask-position: 0% 100%, 50% 100%, 100% 50% } 50% { -webkit-mask-position: 0% 100%, 50% 100%, 100% 100% } 62.5% { -webkit-mask-position: 0% 50%, 50% 100%, 100% 100% } 75% { -webkit-mask-position: 0% 0%, 50% 50%, 100% 100% } 87.5% { -webkit-mask-position: 0% 0%, 50% 0%, 100% 50% } 100% { -webkit-mask-position: 0% 0%, 50% 0%, 100% 0% } } @keyframes success { 0% { background-color: var(--color-border-darker); scale: 0.8; } 33% { background-color: var(--color-border-darker); scale: 1; } } @keyframes wobble { 0% { transform: rotate(calc(var(--bubble-rotate) + 30deg)); } 15% { border-radius: 66% 34% 72% 28% / 39% 63% 37% 61%; } 25% { border-radius: 55% 47% 62% 40% / 58% 50% 52% 44%; } 33% { border-radius: 46% 54% 61% 39% / 50% 51% 49% 50%; } 50% { border-radius: 54% 46% 61% 39% / 57% 49% 51% 43%; } 75% { border-radius: 53% 45% 60% 38% / 56% 48% 50% 42%; } } @keyframes zoom-fade { 100% { transform: translateY(-1.5em); scale: 2; opacity: 0; } } @keyframes blink { 50% { border-color: transparent; } } }