// ------------------------------------------------------------------ // ANIMATION // ------------------------------------------------------------------ :root { --animate-duration: .6s; --animate-delay: 1s; --animate-repeat: 1; } .animated { animation-duration: var(--animate-duration); animation-fill-mode: both; &.infinite { animation-iteration-count: infinite; } } @for $i from 1 to 12 { .wait-p#{$i}s { animation-delay: $i * .1s !important; } } // -> Fade Transition .fade-enter-active, .fade-leave-active { transition-duration: 0.3s; transition-property: opacity; transition-timing-function: ease; } .fade-enter, .fade-leave-active { opacity: 0 } // -> fadeIn @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .fadeIn { animation-name: fadeIn; } // -> fadeInDown @keyframes fadeInDown { from { opacity: 0; transform: translate3d(0, -10px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .fadeInDown { animation-name: fadeInDown; } // -> fadeInLeft @keyframes fadeInLeft { from { opacity: 0; transform: translate3d(-10px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .fadeInLeft { animation-name: fadeInLeft; } // -> fadeInRight @keyframes fadeInRight { from { opacity: 0; transform: translate3d(10px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .fadeInRight { animation-name: fadeInRight; } // -> fadeInUp @keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 10px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .fadeInUp { animation-name: fadeInUp; } // -> Print + Reduce Motion @media print, (prefers-reduced-motion: reduce) { .animated { animation-duration: 1ms !important; transition-duration: 1ms !important; animation-iteration-count: 1 !important; } .animated[class*='Out'] { opacity: 0; } }