.component_modal{ position: fixed; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.7); box-shadow: 1px 2px 10px rgba(0,0,0,0.2); z-index: 1000; > div{ background: white; width: 80%; max-width: 310px; padding: 20px 20px 0 20px; border-radius: 2px; } } /***********************/ /* ENTERING TRANSITION */ // background .modal-appear > div, .modal-enter > div{ opacity: 0;} .modal-appear.modal-appear-active > div, .modal-enter.modal-enter-active > div{ opacity: 1; transition: opacity 0.3s ease; } // box .modal-appear > div > div, .modal-enter > div > div{ opacity: 0; transform-origin: top center; transform: translateY(10px); } .modal-appear.modal-appear-active > div > div, .modal-enter.modal-enter-active > div > div{ opacity: 1; transform: translateY(0); transition-duration: 0.2s; transition-timing-function: ease-out; transition-property: opacity, transform; transition-delay: 0.1s; } /***********************/ /* LEAVING TRANSITION */ // background .modal-leave > div{ opacity: 1; } .modal-leave.modal-leave-active > div{ opacity: 0; transition: opacity 0.2s ease-out; transition-delay: 0.1s; } // box .modal-leave > div > div { transform: translateY(0); opacity: 1;} .modal-leave.modal-leave-active > div > div{ transform: translateY(20px); opacity: 0; transition: all 0.2s ease-out; }