/* Copyright 2022-2024 New Vector Ltd. SPDX-License-Identifier: AGPL-3.0-only Please see LICENSE in the repository root for full details. */ .tile { --media-view-border-radius: var(--cpd-space-4x); transition: outline-color ease 0.15s; outline: var(--cpd-border-width-2) solid rgb(0 0 0 / 0); } /* Use a pseudo-element to create the expressive speaking border, since CSS borders don't support gradients */ .tile::before { content: ""; position: absolute; z-index: -1; /* Put it below the outline */ opacity: 0; /* Hidden unless speaking */ transition: opacity ease 0.15s; inset: calc(-1 * var(--cpd-border-width-4)); border-radius: var(--cpd-space-5x); background: linear-gradient( 119deg, rgba(13, 92, 189, 0.7) 0%, rgba(13, 189, 168, 0.7) 100% ), linear-gradient( 180deg, rgba(13, 92, 189, 0.9) 0%, rgba(13, 189, 168, 0.9) 100% ); background-blend-mode: overlay, normal; } .tile.speaking { /* !important because speaking border should take priority over hover */ outline: var(--cpd-border-width-1) solid var(--cpd-color-bg-canvas-default) !important; } .tile.speaking::before { opacity: 1; } @media (hover: hover) { .tile:hover { outline: var(--cpd-border-width-2) solid var(--cpd-color-border-interactive-hovered); } } .muteIcon[data-muted="true"] { color: var(--cpd-color-icon-secondary); } .muteIcon[data-muted="false"] { color: var(--cpd-color-icon-primary); } .volumeSlider { width: 100%; }