.move-enter, .move-appear { opacity: 0; animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-duration: 2.5s; animation-fill-mode: both; animation-play-state: paused; } .move-leave { animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); animation-duration: .5s; animation-fill-mode: both; animation-play-state: paused; } .move-enter.move-enter-active, .move-appear.move-enter-active { animation-name: moveLeftIn; animation-play-state: running; } .move-leave.move-leave-active { animation-name: moveRightOut; animation-play-state: running; } @keyframes moveLeftIn { 0% { transform-origin: 0 0; transform: translateX(30px); opacity: 0; background: #fff6de; } 20% { transform-origin: 0 0; transform: translateX(0); opacity: 1; } 80%{ background: #fff6de; } 100%{ background: transparent; opacity: 1; } } @keyframes moveRightOut { 0% { transform-origin: 0 0; transform: translateX(0); opacity: 1; } 100% { transform-origin: 0 0; transform: translateX(-30px); opacity: 0; } }