UNPKG

@hellouxpavel/cssanimation

Version:

A Powerful CSS Animation Library for Advanced Motion Design.

696 lines (562 loc) 11.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: Swing * Filename: ca_Swing.ca__fx-css */ .ca__fx-swing { animation-name: swing; animation-timing-function: ease-in-out; transform-origin: top center; } @keyframes swing { 0% { transform: rotate(0deg); } 20% { transform: rotate(15deg); } 40% { transform: rotate(-10deg); } 60% { transform: rotate(5deg); } 80% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } } .ca__fx-swingIn { animation-name: swingIn; animation-timing-function: ease-out; transform-origin: top center; } @keyframes swingIn { 0% { transform: rotate(45deg); opacity: 0; } 40% { transform: rotate(-20deg); opacity: 1; } 60% { transform: rotate(10deg); } 80% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } } .ca__fx-swingOut { animation-name: swingOut; animation-timing-function: ease-in; transform-origin: top center; } @keyframes swingOut { 0% { transform: rotate(0deg); } 30% { transform: rotate(10deg); } 60% { transform: rotate(-30deg); } 100% { transform: rotate(-55deg); opacity: 0; } } .ca__fx-swingUp { animation-name: swingUp; animation-duration: 1s; animation-fill-mode: both; transform-origin: bottom center; } @keyframes swingUp { 0% { transform: translateY(100%) rotateX(45deg); opacity: 0; } 50% { transform: translateY(-10%) rotateX(-15deg); opacity: 1; } 100% { transform: translateY(0%) rotateX(0deg); } } .ca__fx-swingZoom { animation-name: swingZoom; transform-origin: center; } @keyframes swingZoom { 0% { transform: scale(0.ca__fx-8) rotate(-10deg); opacity: 0; } 30% { transform: scale(1.ca__fx-05) rotate(15deg); opacity: 1; } 60% { transform: scale(1) rotate(-5deg); } 100% { transform: scale(1) rotate(0deg); } } .ca__fx-swingPop { animation-name: swingPop; transform-origin: center bottom; } @keyframes swingPop { 0% { transform: scale(0.ca__fx-5) rotate(-20deg); opacity: 0; } 60% { transform: scale(1.ca__fx-1) rotate(10deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); } } .ca__fx-swingSkew { animation-name: swingSkew; transform-origin: top left; } @keyframes swingSkew { 0% { transform: skewX(0deg); } 30% { transform: skewX(15deg); } 60% { transform: skewX(-10deg); } 100% { transform: skewX(0deg); } } .ca__fx-swingInFromRight { animation-name: swingInFromRight; transform-origin: bottom center; } @keyframes swingInFromRight { from { transform: rotate(45deg); opacity: 0; } to { transform: rotate(0deg); opacity: 1; } } .ca__fx-swingInFromLeft { animation-name: swingInFromLeft; transform-origin: bottom center; } @keyframes swingInFromLeft { from { transform: rotate(-45deg); opacity: 0; } to { transform: rotate(0deg); opacity: 1; } } .ca__fx-swingInFromTop { animation-name: swingInFromTop; transform-origin: top center; } @keyframes swingInFromTop { from { transform: rotateX(90deg); transform-origin: top center; opacity: 0; } to { transform: rotateX(0deg); transform-origin: top center; opacity: 1; } } .ca__fx-swingInFromBottom { animation-name: swingInFromBottom; transform-origin: bottom center; } @keyframes swingInFromBottom { from { transform: rotateX(-90deg); transform-origin: bottom center; opacity: 0; } to { transform: rotateX(0deg); transform-origin: bottom center; opacity: 1; } } .ca__fx-swingOutToRight { animation-name: swingOutToRight; transform-origin: bottom center; } @keyframes swingOutToRight { from { transform: rotate(0deg); opacity: 1; } to { transform: rotate(45deg); opacity: 0; } } .ca__fx-swingOutToLeft { animation-name: swingOutToLeft; transform-origin: bottom center; } @keyframes swingOutToLeft { from { transform: rotate(0deg); opacity: 1; } to { transform: rotate(-45deg); opacity: 0; } } .ca__fx-swingOutToTop { animation-name: swingOutToTop; transform-origin: top center; transform-style: preserve-3d; perspective: 1000px; will-change: transform; } @keyframes swingOutToTop { from { transform: rotateX(0deg); transform-origin: top center; opacity: 1; } to { transform: rotateX(90deg); transform-origin: top center; opacity: 0; } } .ca__fx-swingOutToBottom { animation-name: swingOutToBottom; transform-origin: bottom center; transform-style: preserve-3d; perspective: 1000px; will-change: transform; } @keyframes swingOutToBottom { from { transform: rotateX(0deg); transform-origin: bottom center; opacity: 1; } to { transform: rotateX(-90deg); opacity: 0; } } .ca__fx-swingInFromRight { animation-name: swingInFromRight; transform-origin: bottom; } @keyframes swingInFromRight { 40% { transform: rotate(45deg); } 100% { transform: rotate(0deg); animation-timing-function: cubic-bezier(0, 0.ca__fx-9, 0.ca__fx-7, 1.ca__fx-45); } } .ca__fx-swingInFromLeft { animation-name: swingInFromLeft; transform-origin: bottom; } @keyframes swingInFromLeft { 40% { transform: rotate(-45deg); } 100% { transform: rotate(0deg); animation-timing-function: cubic-bezier(0, 0.ca__fx-9, 0.ca__fx-7, 1.ca__fx-45); } } .ca__fx-swingDrop { animation-name: swingDrop; transform-origin: top center; } @keyframes swingDrop { 0% { transform: translateY(-100%) rotate(20deg); opacity: 0; } 40% { transform: translateY(10%) rotate(-15deg); opacity: 1; } 70% { transform: translateY(0%) rotate(5deg); } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropSoft { animation-name: swingDropSoft; transform-origin: top center; } @keyframes swingDropSoft { 0% { transform: translateY(-100%) rotate(15deg); opacity: 0; } 50% { transform: translateY(5%) rotate(-10deg); opacity: 1; } 80% { transform: translateY(-2%) rotate(5deg); } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropHard { animation-name: swingDropHard; transform-origin: top center; } @keyframes swingDropHard { 0% { transform: translateY(-120%) rotate(35deg); opacity: 0; } 40% { transform: translateY(20%) rotate(-25deg); opacity: 1; } 70% { transform: translateY(0%) rotate(10deg); } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropBounce { animation-name: swingDropBounce; transform-origin: top center; } @keyframes swingDropBounce { 0% { transform: translateY(-100%) rotate(15deg); opacity: 0; } 50% { transform: translateY(10%) rotate(-10deg); opacity: 1; } 70% { transform: translateY(-5%) rotate(5deg); } 85% { transform: translateY(3%) rotate(-2deg); } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropTwist { animation-name: swingDropTwist; transform-origin: top center; } @keyframes swingDropTwist { 0% { transform: translateY(-100%) rotate(0deg); opacity: 0; } 25% { transform: translateY(30%) rotate(25deg); opacity: 1; } 50% { transform: translateY(10%) rotate(-20deg); } 75% { transform: translateY(5%) rotate(10deg); } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropElastic { animation-name: swingDropElastic; animation-timing-function: cubic-bezier(0.ca__fx-25, 1.ca__fx-5, 0.ca__fx-5, 1); transform-origin: top center; } @keyframes swingDropElastic { 0% { transform: translateY(-120%) rotate(25deg); opacity: 0; } 30% { transform: translateY(15%) rotate(-20deg); opacity: 1; } 55% { transform: translateY(-8%) rotate(10deg); } 75% { transform: translateY(4%) rotate(-5deg); } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropChain { animation-name: swingDropChain; transform-origin: top center; } @keyframes swingDropChain { 0% { transform: translateY(-100%) rotate(35deg); opacity: 0; } 30% { transform: translateY(5%) rotate(-25deg); opacity: 1; } 50% { transform: rotate(15deg); } 70% { transform: rotate(-8deg); } 90% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } } .ca__fx-swingDropHover { animation-name: swingDropHover; transform-origin: top center; } @keyframes swingDropHover { 0% { transform: translateY(-80%) rotate(20deg); opacity: 0; } 60% { transform: translateY(0%) rotate(-10deg); opacity: 1; } 80% { transform: translateY(-3%) rotate(5deg); } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropKite { animation-name: swingDropKite; transform-origin: top right; } @keyframes swingDropKite { 0% { transform: translate(-30%, -100%) rotate(20deg); opacity: 0; } 40% { transform: translate(10%, 20%) rotate(-15deg); opacity: 1; } 70% { transform: translate(-5%, -5%) rotate(5deg); } 100% { transform: translate(0%, 0%) rotate(0deg); } } .ca__fx-swingDropSnap { animation-name: swingDropSnap; animation-timing-function: cubic-bezier(0.ca__fx-25, 0.ca__fx-85, 0.ca__fx-5, 1.ca__fx-25); transform-origin: top center; } @keyframes swingDropSnap { 0% { transform: translateY(-90%) rotate(10deg); opacity: 0; } 60% { transform: translateY(5%) rotate(-5deg); opacity: 1; } 100% { transform: translateY(0%) rotate(0deg); } } .ca__fx-swingDropMagnet { animation-name: swingDropMagnet; transform-origin: top center; } @keyframes swingDropMagnet { 0% { transform: translateY(-120%) rotate(15deg); opacity: 0; } 50% { transform: translateY(10%) rotate(-8deg); opacity: 1; } 75% { transform: translateY(-4%) rotate(4deg); } 90% { transform: translateY(1%) rotate(-2deg); } 100% { transform: translateY(0%) rotate(0deg); } }