UNPKG

reoverlay

Version:

A tiny, typed modal manager for React.

292 lines (257 loc) 7.07 kB
.reOverlay .reOverlay__modalWrapper { width: 100%; height: 100vh; height: 100dvh; position: fixed; top: 0; left: 0; z-index: 999; background-color: rgba(0, 0, 0, 0.6); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-animation: ro-fade 0.3s forwards; animation: ro-fade 0.3s forwards; } .reOverlay .reOverlay__modalWrapper, .reOverlay .reOverlay__modalWrapper * { box-sizing: border-box; } .reOverlay .reOverlay__modalWrapper .reOverlay__modalContainer { background-color: white; } .reOverlay .reOverlay__modalWrapper.-ro-zoom .reOverlay__modalContainer { -webkit-animation: ro-zoom 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; animation: ro-zoom 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; } .reOverlay .reOverlay__modalWrapper.-ro-slideDown .reOverlay__modalContainer { -webkit-animation: ro-slideDown 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; animation: ro-slideDown 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; } .reOverlay .reOverlay__modalWrapper.-ro-slideUp .reOverlay__modalContainer { -webkit-animation: ro-slideUp 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; animation: ro-slideUp 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; } .reOverlay .reOverlay__modalWrapper.-ro-slideLeft .reOverlay__modalContainer { -webkit-animation: ro-slideLeft 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; animation: ro-slideLeft 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; } .reOverlay .reOverlay__modalWrapper.-ro-slideRight .reOverlay__modalContainer { -webkit-animation: ro-slideRight 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; animation: ro-slideRight 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; } .reOverlay .reOverlay__modalWrapper.-ro-flip .reOverlay__modalContainer { -webkit-animation: ro-flip 0.3s forwards ease-in; animation: ro-flip 0.3s forwards ease-in; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; } .reOverlay .reOverlay__modalWrapper.-ro-rotate .reOverlay__modalContainer { -webkit-animation: ro-rotate 0.3s forwards ease-out; animation: ro-rotate 0.3s forwards ease-out; -webkit-transform-origin: center; -ms-transform-origin: center; transform-origin: center; } .reOverlay .reOverlay__modalWrapper.-ro-door .reOverlay__modalContainer { -webkit-animation: ro-door 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; animation: ro-door 0.3s cubic-bezier(0.4, 0, 0, 1.5) forwards; } /* Keyframes */ @-webkit-keyframes ro-fade { from { opacity: 0; } to { opacity: 1; } } @keyframes ro-fade { from { opacity: 0; } to { opacity: 1; } } @-webkit-keyframes ro-zoom { from { -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes ro-zoom { from { -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @-webkit-keyframes ro-slideDown { from { -webkit-transform: translate3d(0, -2rem, 0); transform: translate3d(0, -2rem, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes ro-slideDown { from { -webkit-transform: translate3d(0, -2rem, 0); transform: translate3d(0, -2rem, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @-webkit-keyframes ro-slideUp { from { -webkit-transform: translate3d(0, 2rem, 0); transform: translate3d(0, 2rem, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes ro-slideUp { from { -webkit-transform: translate3d(0, 2rem, 0); transform: translate3d(0, 2rem, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @-webkit-keyframes ro-slideLeft { from { -webkit-transform: translate3d(-2rem, 0, 0); transform: translate3d(-2rem, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes ro-slideLeft { from { -webkit-transform: translate3d(-2rem, 0, 0); transform: translate3d(-2rem, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @-webkit-keyframes ro-slideRight { from { -webkit-transform: translate3d(2rem, 0, 0); transform: translate3d(2rem, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes ro-slideRight { from { -webkit-transform: translate3d(2rem, 0, 0); transform: translate3d(2rem, 0, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @-webkit-keyframes ro-flip { from { -webkit-transform: perspective(18rem) rotate3d(1, 0, 0, 50deg); transform: perspective(18rem) rotate3d(1, 0, 0, 50deg); } 70% { -webkit-transform: perspective(18rem) rotate3d(1, 0, 0, -15deg); transform: perspective(18rem) rotate3d(1, 0, 0, -15deg); } to { -webkit-transform: perspective(18rem); transform: perspective(18rem); } } @keyframes ro-flip { from { -webkit-transform: perspective(18rem) rotate3d(1, 0, 0, 50deg); transform: perspective(18rem) rotate3d(1, 0, 0, 50deg); } 70% { -webkit-transform: perspective(18rem) rotate3d(1, 0, 0, -15deg); transform: perspective(18rem) rotate3d(1, 0, 0, -15deg); } to { -webkit-transform: perspective(18rem); transform: perspective(18rem); } } @-webkit-keyframes ro-rotate { from { -webkit-transform: rotate3d(0, 0, 1, -180deg) scale3d(0.3, 0.3, 0.3); transform: rotate3d(0, 0, 1, -180deg) scale3d(0.3, 0.3, 0.3); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg) scale3d(1, 1, 1); transform: rotate3d(0, 0, 1, 0deg) scale3d(1, 1, 1); } } @keyframes ro-rotate { from { -webkit-transform: rotate3d(0, 0, 1, -180deg) scale3d(0.3, 0.3, 0.3); transform: rotate3d(0, 0, 1, -180deg) scale3d(0.3, 0.3, 0.3); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg) scale3d(1, 1, 1); transform: rotate3d(0, 0, 1, 0deg) scale3d(1, 1, 1); } } @-webkit-keyframes ro-door { from { -webkit-transform: scale3d(0, 1, 1); transform: scale3d(0, 1, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes ro-door { from { -webkit-transform: scale3d(0, 1, 1); transform: scale3d(0, 1, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @media (prefers-reduced-motion: reduce) { .reOverlay .reOverlay__modalWrapper, .reOverlay .reOverlay__modalWrapper .reOverlay__modalContainer { -webkit-animation-duration: 1ms; animation-duration: 1ms; } }