@import 'src/_variables.scss'; .UpdateNotification { overflow: hidden; } .UpdateNotificationModal { --__top-fringe: 18em; // how much pleroma-tan should stick her head above --__bottom-fringe: 80em; // just reserving as much as we can, number is mostly irrelevant --__right-fringe: 8em; font-size: 15px; /* Explanation: * Modal is positioned vertically centered. * 100vh - 100% = Distance between modal's top+bottom boundaries and screen * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen * + 10% - we move modal completely off-screen, it's top boundary touches * bottom of the screen * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible */ position: relative; transition: transform; transition-timing-function: ease-in-out; transition-duration: 500ms; .text { width: 40em; padding-left: 1em; } @media all and (max-width: 800px) { /* For mobile, the modal takes 100% of the available screen. This ensures the minimized modal is always 50px above the browser bottom bar regardless of whether or not it is visible. */ width: 100vw; } @media all and (max-height: 600px) { display: none; } .content { overflow: hidden; margin-top: calc(-1 * var(--__top-fringe)); margin-bottom: calc(-1 * var(--__bottom-fringe)); margin-right: calc(-1 * var(--__right-fringe)); } .panel-body { border-width: 0 0 1px 0; border-style: solid; border-color: var(--border, $fallback--border); } .panel-footer { z-index: 22; position: relative; border-width: 0; grid-template-columns: auto; } .pleroma-tan { object-fit: cover; object-position: top; transition: position, left, right, top, bottom, max-width, max-height; transition-timing-function: ease-in-out; transition-duration: 500ms; width: 25em; float: right; z-index: 20; position: relative; shape-margin: 0.5em; filter: drop-shadow(5px 5px 10px rgba(0,0,0,0.5)); pointer-events: none; } .spacer-top { min-height: var(--__top-fringe); } .spacer-bottom { min-height: var(--__bottom-fringe); } .extra-info { transition: max-height, padding, height; transition-timing-function: ease-in-out; transition-duration: 500ms; max-height: auto; height: auto; } &.-peek { transform: translateY(calc(((100vh - 100%) / 2))); .pleroma-tan { float: right; z-index: 10; shape-image-threshold: 0.7; } .extra-info { max-height: 0; height: 0; display: none; overflow: hidden; } } }