#MediaViewer { position: fixed; z-index: var(--z-media-viewer); top: 0; left: 0; display: grid; grid-template-columns: auto; grid-template-rows: auto 1fr; row-gap: 0; column-gap: 0; align-items: center; justify-items: stretch; width: 100vw; height: 100%; color: #fff; background: rgba(0, 0, 0, 0.9); // Potential perf improvement &:not(.shown) { transform: scale(0); display: block !important; } body.ghost-animating & { > .pan-wrapper, > button, .MediaViewerContent img, .MediaViewerContent .VideoPlayer { display: none; } } body:not(.no-media-viewer-animations) & { transition-duration: 0.3s !important; } &:not(.open), .closing { .SenderInfo { pointer-events: none; transition: none; } } &.zoomed { .navigation { display: none; } .media-viewer-head { z-index: 2; } .MediaViewerSlide { position: fixed; z-index: 1; top: 0; left: 0; width: 100vw; height: 100vh; padding: 0; } } .media-viewer-head { position: relative; z-index: var(--z-media-viewer-head); display: flex; grid-area: 1 / 1 / 2 / -2; min-width: 0; padding: 0.5rem max(1.25rem, env(safe-area-inset-left)); background: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0) 100%); & > .Transition { width: 100%; min-width: 0; } body.is-tauri.is-macos #Main:not(.is-fullscreen) & { padding-left: var(--window-controls-width); } @media (max-width: 600px) { padding: 0.5rem max(0.5rem, env(safe-area-inset-left)); .media-viewer-close { margin-right: 1.5rem; } } } & > .Transition, & > .pan-wrapper { grid-area: 1 / 1 / -1 / -1; } & > .Transition, & > .pan-wrapper .Transition { position: relative; overflow: hidden; display: flex; align-items: center; justify-self: center; width: 100%; height: 100%; text-align: center; } .navigation { cursor: var(--custom-cursor, pointer); position: fixed; z-index: 1; top: 4rem; bottom: 0; width: 10vw; margin: 0; padding: 0; border: none; appearance: none; opacity: 0; background: transparent no-repeat; background-size: 1.25rem; outline: none; transition: opacity 0.15s; &:hover, .is-touch-env & { opacity: 1; } &.prev { left: env(safe-area-inset-left); background-image: url("../../assets/media_navigation_previous.svg"); background-position: 1.25rem calc(50% - 2rem); &[dir="rtl"] { right: env(safe-area-inset-right); left: auto; transform: scaleX(-1); } } &.next { right: env(safe-area-inset-right); background-image: url("../../assets/media_navigation_next.svg"); background-position: calc(100% - 1.25rem) calc(50% - 2rem); &[dir="rtl"] { right: auto; left: env(safe-area-inset-left); transform: scaleX(-1); } } &.inline { top: calc(50% - 3rem); bottom: unset; height: 6rem; background-position-y: center; @media (max-width: 600px) { pointer-events: none; opacity: 0; transition: opacity 0.15s ease-in; .video-controls-visible & { pointer-events: auto; opacity: 1; } } } @media (max-width: 600px) { width: 20vw; } } .is-protected { pointer-events: none; user-select: none; -webkit-touch-callout: none; } @media (max-width: 600px) { background: rgba(0, 0, 0, 1); } } .ghost { will-change: transform, opacity; position: absolute; z-index: var(--z-media-viewer); overflow: hidden; border-radius: 0; transition: transform 0.2s ease, opacity 0.2s ease; &.rounded-corners { border-radius: var(--border-radius-messages); } &.circle { border-radius: 50%; transition: transform 0.2s ease, opacity 0.2s ease, border-radius 0.2s ease; } img, video { -webkit-user-select: none; user-select: none; width: 100%; height: 100%; object-fit: cover; } }