UNPKG

@hellouxpavel/cssanimation

Version:

A Powerful CSS Animation Library for Advanced Motion Design.

189 lines (156 loc) 4.42 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: Flip X * Filename: ca__FlipX.ca__fx-css */ .ca__fx-flipX { animation-name: flipX; backface-visibility: var(--cssanimation-backface-visibility); transform-style: var(--cssanimation-transform-style); will-change: var(--cssanimation-will-change); } @keyframes flipX { from { transform: perspective(600px) rotateX(-180deg); opacity: 0; } to { transform: perspective(600px) rotateX(-360deg); } } .ca__fx-flipXZoomIn { animation-name: flipXZoomIn; backface-visibility: var(--cssanimation-backface-visibility); transform-style: var(--cssanimation-transform-style); will-change: var(--cssanimation-will-change); } @keyframes flipXZoomIn { 0% { transform: perspective(600px) rotateX(0deg) scale(1); animation-timing-function: ease-out; } 40% { transform: perspective(600px) rotateX(-180deg) scale(1.ca__fx-8); animation-timing-function: ease-out; } 80% { transform: perspective(600px) rotateX(-360deg) scale(0.ca__fx-7); animation-timing-function: ease-in; } 100% { transform: scale(1); } } .ca__fx-flipXZoomOut { animation-name: flipXZoomOut; backface-visibility: var(--cssanimation-backface-visibility); transform-style: var(--cssanimation-transform-style); will-change: var(--cssanimation-will-change); } @keyframes flipXZoomOut { 0% { transform: perspective(600px) rotateX(0deg) scale(1); animation-timing-function: ease-out; } 40% { transform: perspective(600px) rotateX(180deg) scale(1.ca__fx-8); animation-timing-function: ease-out; } 80% { transform: perspective(600px) rotateX(360deg) scale(0.ca__fx-7); animation-timing-function: ease-in; } 100% { transform: scale(1); } } .ca__fx-flipOutLeft { animation-name: flipOutLeft; backface-visibility: var(--cssanimation-backface-visibility); transform-style: var(--cssanimation-transform-style); will-change: var(--cssanimation-will-change); } @keyframes flipOutLeft { 0% { transform: perspective(600px) rotateY(0deg); opacity: 1; } 100% { transform: perspective(600px) rotateY(-90deg) translateX(-60px); opacity: 0; } } .ca__fx-flipOutRight { animation-name: flipOutRight; backface-visibility: var(--cssanimation-backface-visibility); transform-style: var(--cssanimation-transform-style); will-change: var(--cssanimation-will-change); } @keyframes flipOutRight { 0% { transform: perspective(600px) rotateY(0deg); opacity: 1; } 100% { transform: perspective(600px) rotateY(90deg) translateX(60px); opacity: 0; } } .ca__fx-flipOutXLeft { animation-name: flipOutXLeft; backface-visibility: var(--cssanimation-backface-visibility); transform-style: var(--cssanimation-transform-style); will-change: var(--cssanimation-will-change); } @keyframes flipOutXLeft { 0% { transform: perspective(600px) rotateX(0deg); opacity: 1; } 100% { transform: perspective(600px) rotateX(-90deg) translateX(-60px); opacity: 0; } } .ca__fx-flipOutXRight { animation-name: flipOutXRight; backface-visibility: var(--cssanimation-backface-visibility); transform-style: var(--cssanimation-transform-style); will-change: var(--cssanimation-will-change); } @keyframes flipOutXRight { 0% { transform: perspective(600px) rotateX(0deg); opacity: 1; } 100% { transform: perspective(600px) rotateX(90deg) translateX(60px); opacity: 0; } }