$timing-default: ease-out; $timing-bounce: cubic-bezier(0, 1.02, .32, 1.34); // easeOutBack, modified: http://cubic-bezier.com/#0,1.02,.32,1.34 // // Transitions // @mixin transition { transition: all .2s ease-out; } .transition { @include transition; } .fade { @include transition; opacity: 0; &.in { opacity: 1; } } // // Custom animations // @mixin animation-fade-in { animation: fade-in .2s $timing-default; } .animation-fade-in { @include animation-fade-in; &.paused { animation-play-state: paused; } } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } // smooooothly slide in from bottom @mixin animation-slide-in-from-bottom { animation: slide-in-from-bottom .7s $timing-bounce; } .animation-slide-in-from-bottom { @include animation-slide-in-from-bottom; &.paused { animation-play-state: paused; } } @keyframes slide-in-from-bottom { 0% { opacity: 0; transform: translateY(50px); } 100% { opacity: 1; transform: translateY(0); } }