mirror of
https://github.com/vector-im/element-call.git
synced 2026-07-12 18:39:19 +00:00
117 lines
2.3 KiB
CSS
117 lines
2.3 KiB
CSS
/*
|
|
Copyright 2021-2024 New Vector Ltd.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
Please see LICENSE in the repository root for full details.
|
|
*/
|
|
|
|
.inRoom {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
width: 100%;
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* Normally the footer uses a transparent background to allow our expressive
|
|
page gradients to shine through. However, we sometimes need to visually separate
|
|
it from the content underneath. If the call layout is overflowing, or if the
|
|
spotlight tile is maximised and displaying video, apply a gradient background. */
|
|
.overflowing > .footer,
|
|
.fixedGrid:has(
|
|
> .tile[data-maximised="true"]
|
|
.spotlightItem[data-background="transparent"][data-video-enabled="true"][aria-hidden="false"]
|
|
)
|
|
~ .footer {
|
|
background: linear-gradient(
|
|
180deg,
|
|
rgba(0, 0, 0, 0) 0%,
|
|
var(--cpd-color-bg-canvas-default) 100%
|
|
);
|
|
}
|
|
|
|
.header {
|
|
position: sticky;
|
|
flex-shrink: 0;
|
|
inset-block-start: 0;
|
|
z-index: var(--call-view-header-footer-layer);
|
|
background: linear-gradient(
|
|
0deg,
|
|
rgba(0, 0, 0, 0) 0%,
|
|
var(--cpd-color-bg-canvas-default) 100%
|
|
);
|
|
}
|
|
|
|
.header.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.header.overlay {
|
|
/* Note that the header is still position: sticky in this case so that certain
|
|
tiles can move down out of the way of the header when visible. */
|
|
opacity: 1;
|
|
transition: opacity 0.15s;
|
|
}
|
|
|
|
.header.overlay.hidden {
|
|
display: flex;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
/* Switch to position: absolute so the header takes up no space in the layout
|
|
when hidden. */
|
|
position: absolute;
|
|
inset-block-start: 0;
|
|
inset-inline: 0;
|
|
}
|
|
|
|
.header.overlay:has(:focus-visible) {
|
|
opacity: 1;
|
|
pointer-events: initial;
|
|
}
|
|
|
|
.header.filler {
|
|
block-size: var(--cpd-space-6x);
|
|
background: none;
|
|
}
|
|
|
|
@media (max-width: 320px) {
|
|
.invite {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.fixedGrid {
|
|
position: absolute;
|
|
inline-size: 100%;
|
|
align-self: center;
|
|
}
|
|
|
|
.scrollingGrid {
|
|
position: relative;
|
|
flex-grow: 1;
|
|
inline-size: 100%;
|
|
align-self: center;
|
|
}
|
|
|
|
.fixedGrid,
|
|
.scrollingGrid {
|
|
/* Disable pointer events so the overlay doesn't block interaction with
|
|
elements behind it */
|
|
pointer-events: none;
|
|
|
|
> :not(:first-child) {
|
|
pointer-events: initial;
|
|
}
|
|
|
|
.tile {
|
|
position: absolute;
|
|
inset-block-start: 0;
|
|
}
|
|
}
|
|
|
|
.tile {
|
|
position: relative;
|
|
flex-grow: 1;
|
|
}
|