UNPKG

@hellouxpavel/cssanimation

Version:

A Powerful CSS Animation Library for Advanced Motion Design.

731 lines (606 loc) 13.7 kB
.cssanimation { animation-duration: var(--cssanimation-duration, 1s); animation-fill-mode: var(--cssanimation-fill-mode, both); } .cssanimation span { display: var(--cssanimation-display, inline-block); } .infinite { animation-iteration-count: var(--cssanimation-infinite, infinite) !important; } @media (prefers-reduced-motion: reduce) { .cssanimation, .cssanimation span { animation: none !important; transition: none !important; } } :root { --cssanimation-duration: 1s; --cssanimation-fill-mode: both; --cssanimation-infinite: infinite; --cssanimation-backface-visibility: hidden; --cssanimation-transform-style: preserve-3d; --cssanimation-will-change: transform, opacity; --cssanimation-display: inline-block; --move-distance: -800px; } /** * Module: WOW * Filename: ca__wow.ca__fx-css */ .ca__fx-blurTrailIn { animation-name: blurTrailIn; animation-timing-function: ease-out; transform-origin: center; will-change: transform, opacity; filter: blur(8px); } @keyframes blurTrailIn { 0% { transform: translateY(60%) scale(1.ca__fx-2); filter: blur(12px); opacity: 0; } 80% { filter: blur(3px); } 100% { transform: translateY(0%) scale(1); filter: blur(0); opacity: 1; } } .ca__fx-blurTrailOut { animation-name: blurTrailOut; animation-timing-function: ease-in; transform-origin: center; will-change: transform, opacity; } @keyframes blurTrailOut { 0% { transform: translateY(0%); filter: blur(0); opacity: 1; } 100% { transform: translateY(-60%) scale(0.ca__fx-95); filter: blur(10px); opacity: 0; } } .ca__fx-layerPeelIn { animation-name: layerPeelIn; animation-timing-function: ease-out; transform-origin: top left; will-change: transform, opacity; perspective: 800px; } @keyframes layerPeelIn { 0% { transform: rotateX(-90deg) translateY(-100%); opacity: 0; } 60% { transform: rotateX(20deg); opacity: 1; } 100% { transform: rotateX(0deg) translateY(0%); } } .ca__fx-layerPeelOut { animation-name: layerPeelOut; animation-timing-function: ease-in; transform-origin: bottom right; will-change: transform, opacity; perspective: 800px; } @keyframes layerPeelOut { 0% { transform: rotateX(0deg); opacity: 1; } 100% { transform: rotateX(90deg) translateY(100%); opacity: 0; } } .ca__fx-squishPop { animation-name: squishPop; animation-timing-function: cubic-bezier(0.ca__fx-25, 1.ca__fx-25, 0.ca__fx-5, 1.ca__fx-2); animation-direction: normal; will-change: transform, opacity; } @keyframes squishPop { 0% { transform: scale(0.ca__fx-2, 1.ca__fx-6); opacity: 0; } 60% { transform: scale(1.ca__fx-3, 0.ca__fx-7); opacity: 1; } 100% { transform: scale(1, 1); } } .ca__fx-gravityPullIn { animation-name: gravityPullIn; animation-timing-function: ease-out; will-change: transform, opacity; } @keyframes gravityPullIn { 0% { transform: scale(2) translateY(-100%) rotate(-10deg); opacity: 0; } 80% { transform: scale(1.ca__fx-05) translateY(0%) rotate(2deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); } } .ca__fx-slinkyStretch { animation-name: slinkyStretch; animation-timing-function: cubic-bezier(0.ca__fx-3, 1.ca__fx-5, 0.ca__fx-5, 1); will-change: transform, opacity; } @keyframes slinkyStretch { 0% { transform: scaleY(0.ca__fx-2); opacity: 0; } 50% { transform: scaleY(1.ca__fx-3); opacity: 1; } 100% { transform: scaleY(1); } } .ca__fx-wobbleEntry { animation-name: wobbleEntry; animation-timing-function: ease-out; will-change: transform, opacity; } @keyframes wobbleEntry { 0% { transform: rotate(-30deg) scale(0.ca__fx-5); opacity: 0; } 40% { transform: rotate(15deg) scale(1.ca__fx-05); opacity: 1; } 70% { transform: rotate(-8deg); } 100% { transform: rotate(0deg) scale(1); } } .ca__fx-peelDropIn { animation-name: peelDropIn; animation-timing-function: ease-out; will-change: transform, opacity; transform-origin: top left; perspective: 800px; } @keyframes peelDropIn { 0% { transform: rotateX(-80deg) rotateZ(-10deg) translateY(-100%); opacity: 0; } 80% { transform: rotateX(15deg) rotateZ(3deg); opacity: 1; } 100% { transform: rotateX(0) rotateZ(0) translateY(0); } } .ca__fx-vibeInPop { animation-name: vibeInPop; animation-timing-function: ease-out; will-change: transform, opacity; transform-origin: center; } @keyframes vibeInPop { 0% { transform: scale(0.ca__fx-4) rotate(-15deg); filter: brightness(1.ca__fx-8); opacity: 0; } 40% { transform: scale(1.ca__fx-05) rotate(5deg); filter: brightness(1); opacity: 1; } 100% { transform: scale(1) rotate(0deg); } } .ca__fx-flickerPop { animation-name: flickerPop; animation-timing-function: ease-out; will-change: transform, opacity; } @keyframes flickerPop { 0% { opacity: 0; transform: scale(0.ca__fx-6); filter: brightness(0); } 25% { opacity: 1; filter: brightness(2); } 30% { filter: brightness(0.ca__fx-4); } 50% { filter: brightness(1); } 100% { transform: scale(1); filter: none; } } .ca__fx-inertiaSlideIn { animation-name: inertiaSlideIn; animation-timing-function: cubic-bezier(0.ca__fx-15, 0.ca__fx-85, 0.ca__fx-3, 1.ca__fx-2); will-change: transform, opacity; transform-origin: left center; } @keyframes inertiaSlideIn { 0% { transform: translateX(-120%) scaleX(1.ca__fx-4); opacity: 0; } 60% { transform: translateX(10%) scaleX(0.ca__fx-95); opacity: 1; } 100% { transform: translateX(0%) scaleX(1); } } .ca__fx-dropSpinIn { animation-name: dropSpinIn; animation-timing-function: ease-out; transform-origin: top center; will-change: transform, opacity; } @keyframes dropSpinIn { 0% { transform: rotateZ(-180deg) translateY(-200%); opacity: 0; } 60% { transform: rotateZ(20deg) translateY(10%); opacity: 1; } 100% { transform: rotateZ(0deg) translateY(0%); } } .ca__fx-breezeLift { animation-name: breezeLift; animation-timing-function: ease-in-out; will-change: transform, opacity; transform-origin: center; } @keyframes breezeLift { 0% { transform: translateY(40%) rotate(-3deg); opacity: 0; } 50% { transform: translateY(-5%) rotate(2deg); } 100% { transform: translateY(0%) rotate(0deg); opacity: 1; } } .ca__fx-featherFloat { animation-name: featherFloat; animation-timing-function: ease-out; transform-origin: center; will-change: transform, opacity; } @keyframes featherFloat { 0% { transform: translateY(-120%) rotate(0deg); opacity: 0; } 40% { transform: translateY(10%) rotate(10deg); opacity: 1; } 80% { transform: translateY(0%) rotate(-2deg); } 100% { transform: rotate(0deg); } } .ca__fx-powerUpPop { animation-name: powerUpPop; animation-timing-function: ease-out; transform-origin: center; will-change: transform, opacity; } @keyframes powerUpPop { 0% { transform: scale(0.ca__fx-3); filter: hue-rotate(180deg) brightness(2); opacity: 0; } 50% { transform: scale(1.ca__fx-2); filter: hue-rotate(90deg); opacity: 1; } 100% { transform: scale(1); filter: none; } } .ca__fx-levelUnlock { animation-name: levelUnlock; animation-timing-function: ease-in-out; will-change: transform, opacity; transform-origin: center; } @keyframes levelUnlock { 0% { transform: scale(0.ca__fx-8) rotateX(90deg); opacity: 0; } 50% { transform: scale(1.ca__fx-2) rotateX(-30deg); opacity: 1; } 100% { transform: scale(1) rotateX(0deg); } } .ca__fx-softPulseIdle { animation-name: softPulseIdle; animation-timing-function: ease-in-out; animation-iteration-count: infinite; transform-origin: center; } @keyframes softPulseIdle { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.ca__fx-05); opacity: 0.ca__fx-95; } } .ca__fx-shimmerWaveIdle { animation-name: shimmerWaveIdle; animation-duration: 3s; animation-timing-function: linear; animation-iteration-count: infinite; background: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.ca__fx-3) 50%, rgba(255, 255, 255, 0) 100% ); background-size: 200% 100%; background-clip: text; -webkit-background-clip: text; color: transparent; } @keyframes shimmerWaveIdle { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .ca__fx-gearSnapIn { animation-name: gearSnapIn; animation-timing-function: cubic-bezier(0.ca__fx-3, 1.ca__fx-6, 0.ca__fx-6, 1); transform-origin: center; will-change: transform, opacity; } @keyframes gearSnapIn { 0% { transform: scale(0.ca__fx-6) rotate(-90deg); opacity: 0; } 40% { transform: scale(1.ca__fx-1) rotate(30deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); } } .ca__fx-joyBounceIn { animation-name: joyBounceIn; animation-timing-function: ease-out; transform-origin: center; will-change: transform, opacity; } @keyframes joyBounceIn { 0% { transform: scale(0.ca__fx-4) rotate(-15deg); opacity: 0; } 30% { transform: scale(1.ca__fx-2) rotate(10deg); opacity: 1; } 60% { transform: scale(0.ca__fx-95) rotate(-5deg); } 100% { transform: scale(1) rotate(0deg); } } .ca__fx-blushSlideIn { animation-name: blushSlideIn; animation-timing-function: ease-out; transform-origin: bottom center; will-change: transform, opacity; } @keyframes blushSlideIn { 0% { transform: translateY(100%) scale(0.ca__fx-9) rotate(-6deg); opacity: 0; } 70% { transform: translateY(-4%) scale(1.ca__fx-05) rotate(3deg); opacity: 1; } 100% { transform: translateY(0%) scale(1) rotate(0deg); } } .ca__fx-stampSmash { animation-name: stampSmash; animation-timing-function: cubic-bezier(0.ca__fx-25, 1.ca__fx-8, 0.ca__fx-4, 1); will-change: transform, opacity; transform-origin: center; } @keyframes stampSmash { 0% { transform: scale(2.ca__fx-4) rotate(15deg); opacity: 0; } 60% { transform: scale(0.ca__fx-85) rotate(-8deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); } } .ca__fx-comboLevelRise { animation-name: comboLevelRise; animation-timing-function: ease-out; will-change: transform, opacity; transform-origin: bottom center; } @keyframes comboLevelRise { 0% { transform: translateY(40%) scale(0.ca__fx-8) rotateX(40deg); opacity: 0; } 60% { transform: translateY(-8%) scale(1.ca__fx-1) rotateX(-10deg); opacity: 1; } 100% { transform: translateY(0%) scale(1) rotateX(0deg); } } .ca__fx-wiggleReactive { animation-name: wiggleReactive; animation-timing-function: ease-in-out; animation-iteration-count: infinite; transform-origin: center; } @keyframes wiggleReactive { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(4deg); } 50% { transform: rotate(-4deg); } 75% { transform: rotate(2deg); } } .ca__fx-pulseGlow { animation-name: pulseGlow; animation-timing-function: ease-in-out; box-shadow: 0 0 0 rgba(255, 255, 255, 0.ca__fx-4); } @keyframes pulseGlow { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.ca__fx-4); } 70% { box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); } } .ca__fx-cosmicReveal { animation-name: cosmicReveal; animation-timing-function: ease-out; transform-origin: center; will-change: transform, opacity; filter: blur(6px) brightness(2); } @keyframes cosmicReveal { 0% { transform: scale(1.ca__fx-8); filter: blur(10px) brightness(4); opacity: 0; } 70% { filter: blur(1px); opacity: 1; } 100% { transform: scale(1); filter: none; } } .ca__fx-scribbleGlowIn { animation-name: scribbleGlowIn; animation-timing-function: ease-out; will-change: transform, opacity; filter: blur(5px); } @keyframes scribbleGlowIn { 0% { transform: scale(1.ca__fx-4) rotate(-5deg); opacity: 0; filter: blur(8px); } 100% { transform: scale(1) rotate(0); opacity: 1; filter: none; } } .ca__fx-panelUnfold { animation-name: panelUnfold; animation-timing-function: ease-out; will-change: transform, opacity; transform-origin: top center; } @keyframes panelUnfold { 0% { transform: scaleY(0.ca__fx-2) rotateX(-90deg); opacity: 0; } 60% { transform: scaleY(1.ca__fx-05) rotateX(10deg); opacity: 1; } 100% { transform: scaleY(1) rotateX(0); } }