You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
441 lines
7.8 KiB
441 lines
7.8 KiB
/* |
|
* Spreed WebRTC. |
|
* Copyright (C) 2013-2014 struktur AG |
|
* |
|
* This file is part of Spreed WebRTC. |
|
* |
|
* This program is free software: you can redistribute it and/or modify |
|
* it under the terms of the GNU Affero General Public License as published by |
|
* the Free Software Foundation, either version 3 of the License, or |
|
* (at your option) any later version. |
|
* |
|
* This program is distributed in the hope that it will be useful, |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
* GNU Affero General Public License for more details. |
|
* |
|
* You should have received a copy of the GNU Affero General Public License |
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
* |
|
*/ |
|
|
|
#audiovideo { |
|
bottom: 0; |
|
left: 0; |
|
position: absolute; |
|
right: 0; |
|
top: $minbarheight; |
|
user-select: none; |
|
} |
|
|
|
#audiovideo { |
|
&.fullscreen { |
|
background: black !important; |
|
bottom: 0 !important; |
|
left: 0 !important; |
|
top: 0 !important; |
|
right: 0 !important; |
|
.remoteVideo .peerActions { |
|
display: none; |
|
} |
|
} |
|
@include breakpt($breakpoint-video-small, max-width, only screen) { |
|
right: 0; |
|
} |
|
} |
|
|
|
.mainScreenshare #audiovideo, .mainPresentation #audiovideo { |
|
@include breakpt($breakpoint-video-medium, max-width, only screen) { |
|
display: none; |
|
} |
|
} |
|
|
|
.withChat #audiovideo, |
|
.withBuddylist #audiovideo { |
|
right: 260px; |
|
} |
|
|
|
.withBuddylist.withChat #audiovideo { |
|
right: 520px; |
|
} |
|
|
|
.audiovideo { |
|
bottom: 0; |
|
left: 0; |
|
position: absolute; |
|
top: 0; |
|
right: 0; |
|
&.active { |
|
perspective: 1000; |
|
&:hover .overlayActions { |
|
opacity: .3; |
|
} |
|
.overlayActions:hover { |
|
opacity: .6; |
|
} |
|
.audiovideoBase { |
|
transform: rotateY(180deg); |
|
} |
|
} |
|
.audiovideoBase { |
|
position: relative; |
|
width: 100%; |
|
height: 100%; |
|
transition-property: transform; |
|
transition-duration: 2s; |
|
transform: rotateY(0deg); |
|
z-index: 2; |
|
} |
|
.localContainer { |
|
bottom: 0; |
|
left: 0; |
|
pointer-events: none; |
|
position: absolute; |
|
right: 0; |
|
top: 0; |
|
transform: scale(-1, 1); |
|
z-index: 2; |
|
} |
|
video { |
|
object-fit: contain; |
|
} |
|
} |
|
|
|
.audiovideo { |
|
.remoteContainer { |
|
bottom: 0; |
|
left: 0; |
|
pointer-events: none; |
|
position: absolute; |
|
right: 0; |
|
top: 0; |
|
transform: rotateY(180deg); |
|
z-index: 2; |
|
} |
|
.miniContainer { |
|
bottom: 2px; |
|
max-height: 18%; |
|
height: 100%; |
|
opacity: 0; |
|
position: absolute; |
|
right: 2px; |
|
transform: scale(-1, 1); |
|
transition-property: opacity; |
|
transition-duration: .5s; |
|
z-index: 25; |
|
&.visible { |
|
opacity: 1; |
|
} |
|
} |
|
.miniVideo { |
|
display: block; |
|
max-height: 100%; |
|
max-width: 100%; |
|
height: 100%; |
|
} |
|
.localVideo { |
|
background: $video-background; |
|
display: block; |
|
max-height: 100%; |
|
opacity: 0; |
|
transition-property: opacity; |
|
transition-duration: 2s; |
|
width: 100%; |
|
} |
|
} |
|
|
|
.audiovideo .remoteVideos { |
|
bottom: 0; |
|
left: 0; |
|
opacity: 0; |
|
position: absolute; |
|
right: 0; |
|
top: 0; |
|
transition-property: opacity; |
|
transition-duration: 2s; |
|
video { |
|
display: block; |
|
height: 100%; |
|
width: 100%; |
|
} |
|
} |
|
|
|
.audiovideo .remoteVideo{ |
|
background: $video-background; |
|
display: inline-block; |
|
max-height: 100%; |
|
max-width: 100%; |
|
overflow: hidden; |
|
position: relative; |
|
vertical-align: bottom; |
|
visibility: hidden; |
|
width: 100%; |
|
&.withvideo { |
|
visibility: visible; |
|
} |
|
&.onlyaudio { |
|
background: $video-onlyaudio-background; |
|
visibility: visible; |
|
} |
|
.onlyaudio { |
|
color: $video-onlyaudio; |
|
display: none; |
|
font-size: 80px; |
|
left: 0; |
|
margin-top: -40px; |
|
pointer-events: auto; |
|
position: absolute; |
|
right: 0; |
|
text-align: center; |
|
top: 45%; |
|
} |
|
&.onlyaudio video { |
|
visibility: hidden; |
|
} |
|
&.onlyaudio .onlyaudio { |
|
display: block; |
|
} |
|
.peerActions { |
|
bottom: 5%; |
|
left: 40px; |
|
opacity: 0; |
|
pointer-events: auto; |
|
position: absolute; |
|
right: 40px; |
|
text-align: center; |
|
transition-property: opacity; |
|
transition-duration: .2s; |
|
z-index: 10; |
|
&:hover { |
|
opacity: .5; |
|
} |
|
i { |
|
font-size: 3vw; |
|
} |
|
} |
|
.peerLabel { |
|
bottom: 4%; |
|
color: white; |
|
left: 4%; |
|
font-size: 2.5vw; |
|
max-width: 30%; |
|
opacity: .7; |
|
overflow: hidden; |
|
padding: 4px; |
|
position: absolute; |
|
text-overflow: ellipsis; |
|
text-shadow: 0 0 4px black; |
|
white-space: nowrap; |
|
z-index: 8; |
|
} |
|
} |
|
|
|
.audiovideo .overlayActions { |
|
background: $video-overlayactions; |
|
bottom: 0; |
|
height: 140px; |
|
left: 0; |
|
margin:auto 0; |
|
opacity: 0; |
|
padding: 3px 0; |
|
position: absolute; |
|
top: 0; |
|
width: 40px; |
|
z-index: 5; |
|
button { |
|
color: #ccc; |
|
cursor: pointer; |
|
display: block; |
|
outline: 0; |
|
text-shadow: 0 0 5px black; |
|
width: 40px; |
|
} |
|
} |
|
|
|
.remoteVideo { |
|
&.talking .peerLabel { |
|
color: $audiovideolevel; |
|
} |
|
.peerLabel { |
|
transition: color 500ms ease-out; |
|
} |
|
.overlayLogo { |
|
background: url(../img/logo-overlay.png) no-repeat center; |
|
background-size: 100%; |
|
height: 20%; |
|
max-height: 40px; |
|
max-width: 111px; |
|
opacity: .5; |
|
pointer-events: none; |
|
position: absolute; |
|
right: 2.5%; |
|
top: 4%; |
|
width: 20%; |
|
z-index: 2; |
|
} |
|
} |
|
|
|
.miniContainer { |
|
&.talking video { |
|
border: 1px solid $audiovideolevel; |
|
} |
|
video { |
|
border: 1px solid transparent; |
|
} |
|
} |
|
|
|
.renderer-smally { |
|
width: 150px; |
|
background: black; |
|
border-right: none; |
|
border-top: none; |
|
.remoteVideos { |
|
padding-bottom: 85px; |
|
} |
|
.remoteVideo { |
|
.peerLabel { |
|
font-size: .9em; |
|
font-weight: bold; |
|
} |
|
.peerActions i { |
|
font-size: 1em; |
|
} |
|
} |
|
.miniContainer { |
|
bottom: 0; |
|
height: 85px; |
|
left: 0; |
|
max-height: none; |
|
right: 0; |
|
} |
|
} |
|
|
|
.renderer-onepeople { |
|
} |
|
|
|
.renderer-conferencekiosk { |
|
.remoteVideos { |
|
background: $video-background; |
|
bottom: 2px; |
|
min-height: 108px; |
|
pointer-events: auto; |
|
text-align: center; |
|
top: auto; |
|
white-space: nowrap; |
|
> div { |
|
cursor: pointer; |
|
height: 108px; |
|
width: 192px; |
|
} |
|
.overlayLogo { |
|
display: none; |
|
} |
|
.peerLabel, |
|
.peerActions i { |
|
font-size: 1.1em; |
|
} |
|
.peerLabel { |
|
background: $video-overlayactions; |
|
} |
|
} |
|
.miniContainer { |
|
height: 108px; |
|
max-height: none; |
|
width: 192px; |
|
} |
|
.bigVideo { |
|
bottom: 112px; |
|
left: 0; |
|
margin: auto; |
|
opacity: 0; |
|
position: absolute; |
|
right: 0; |
|
top: 2px; |
|
transition-property: opacity; |
|
transition-duration: 2s; |
|
video { |
|
width: 100%; |
|
height: 100%; |
|
} |
|
} |
|
} |
|
|
|
.renderer-selfportrait { |
|
.miniContainer { |
|
max-height: 100%; |
|
width: 100%; |
|
height: 100%; |
|
left: 0px; |
|
right: 0px; |
|
bottom: 0px; |
|
top: 0px; |
|
.miniVideo { |
|
width: 100%; |
|
height: 100%; |
|
} |
|
} |
|
.remoteVideos { |
|
opacity: 0 !important; |
|
display: none; |
|
} |
|
} |
|
|
|
.renderer-classroom { |
|
.remoteContainer { |
|
border-left: 40px solid black; |
|
} |
|
.remoteVideos { |
|
top: 180px; |
|
width: 320px; |
|
pointer-events: auto; |
|
background: $video-background; |
|
.overlayLogo { |
|
display: none; |
|
} |
|
video { |
|
height: 100%; |
|
width: 100%; |
|
object-fit: cover; |
|
margin-top: -9px; |
|
} |
|
> div { |
|
cursor: pointer; |
|
width: 80px; |
|
height: 60px; |
|
display: inline-block; |
|
} |
|
.overlayLogo { |
|
display: none; |
|
} |
|
.peerLabel { |
|
font-size: 0.6em; |
|
background: $video-overlayactions; |
|
max-width: 100%; |
|
bottom: 0px; |
|
left: 0px; |
|
right: 0px; |
|
padding: 0 4px; |
|
line-height: 9px; |
|
} |
|
.peerActions { |
|
display: none; |
|
} |
|
.miniContainer { |
|
right: auto; |
|
max-height: auto; |
|
} |
|
} |
|
.bigVideo { |
|
width: 320px; |
|
height: 180px; |
|
video { |
|
height: 100%; |
|
width: 100%; |
|
} |
|
.peerLabel { |
|
font-size: 1vw; |
|
max-width: 40%; |
|
bottom: 8%; |
|
} |
|
} |
|
} |