#videoconference_page { min-height: 100%; } #videospace { display: block; min-height: 100%; position: absolute; top: 0px; left: 0px; right: 0px; overflow: hidden; } .videocontainer { position: relative; text-align: center; &__background { @include topLeft(); background-color: black; border-radius: $borderRadius; width: 100%; height: 100%; } /** * The toolbar of the video thumbnail. */ &__toolbar, &__toptoolbar { position: absolute; left: 0; z-index: $zindex3; width: 100%; box-sizing: border-box; // Includes the padding in the 100% width. } &__toolbar { bottom: 0; padding: 0 5px 0 5px; height: $thumbnailToolbarHeight; } &__toptoolbar { $toolbarPadding: 5px; top: 0; padding: $toolbarPadding; padding-bottom: 0; span.indicator { position: relative; font-size: 8px; text-align: center; line-height: $thumbnailIndicatorSize; display: none; padding: 0; margin-right: em(5, 8); float: left; @include circle($thumbnailIndicatorSize); box-sizing: border-box; z-index: $zindex3; background: $dominantSpeakerBg; color: $thumbnailPictogramColor; border: $thumbnailIndicatorBorder solid $thumbnailPictogramColor; &:last-child { margin-right: 0; } .indicatoricon { @include absoluteAligning(); } .connection { position: relative; display: inline-block; margin: 0 auto; left: 0; @include transform(translate(0, -50%)); &_empty { color: #8B8B8B;/*#FFFFFF*/ overflow: hidden; } &_lost { color: #8B8B8B; overflow: visible; } &_full { @include topLeft(); color: #FFFFFF;/*#15A1ED*/ overflow: hidden; } &_ninja { font-size: 1.5em; } } .icon-connection, .icon-connection-lost { font-size: 1em; } } } &__hoverOverlay { background: rgba(0,0,0,.6); border-radius: $borderRadius; position: relative; width: 100%; height: 100%; visibility: hidden; z-index: $zindex2; } &.audio-only { .videoThumbnailProblemFilter { filter: none; } } } #localVideoWrapper { display:inline-block; } .flipVideoX { transform: scale(-1, 1); -moz-transform: scale(-1, 1); -webkit-transform: scale(-1, 1); -o-transform: scale(-1, 1); } #localVideoWrapper>video, #localVideoWrapper>object { border-radius: $borderRadius !important; cursor: hand; object-fit: cover; } #largeVideo, #largeVideoWrapper, #largeVideoContainer { overflow: hidden; text-align: center; } #largeVideo, #largeVideoWrapper { object-fit: cover; } #sharedVideo, #etherpad, #localVideoWrapper>video, #localVideoWrapper>object, #localVideoWrapper, #largeVideoWrapper, #largeVideoWrapper>video, #largeVideoWrapper>object, .videocontainer>video, .videocontainer>object { position: absolute; left: 0; top: 0; z-index: $zindex1; width: 100%; height: 100%; } #etherpad { text-align: center; } #etherpad { z-index: $zindex0; } /** * Positions video thumbnail display name and editor. */ .videocontainer .displayname, .videocontainer .editdisplayname { display: inline-block; position: absolute; left: 10%; width: 80%; top: 50%; @include transform(translateY(-40%)); color: $participantNameColor; text-align: center; text-overflow: ellipsis; font-size: 12px; font-weight: 100; overflow: hidden; white-space: nowrap; line-height: $thumbnailToolbarHeight; z-index: $zindex2; } /** * Positions video thumbnail display name editor. */ .videocontainer .editdisplayname { outline: none; border: none; background: none; box-shadow: none; padding: 0; } #localVideoContainer .displayname:hover { cursor: text; } .videocontainer .displayname { pointer-events: none; padding: 0 3px 0 3px; } .videocontainer .editdisplayname { height: auto; } #localDisplayName { pointer-events: auto !important; } .videocontainer>a.displayname { display: inline-block; position: absolute; color: #FFFFFF; bottom: 0; right: 0; padding: 3px 5px; font-size: 9pt; cursor: pointer; z-index: $zindex2; } /** * Video thumbnail toolbar icon. */ .videocontainer .toolbar-icon { font-size: 8pt; text-align: center; text-shadow: 0px 1px 0px rgba(255,255,255,.3), 0px -1px 0px rgba(0,0,0,.7); color: #FFFFFF; width: 12px; line-height: $thumbnailToolbarHeight; height: $thumbnailToolbarHeight; padding: 0; border: 0; margin: 0px 5px 0px 0px; float: left; } /** * Toolbar icon internal i elements (font icons). */ .toolbar-icon>i { line-height: $thumbnailToolbarHeight; } /** * Toolbar icons positioned on the right. */ .toolbar-icon.right { float: right; margin: 0px 0px 0px 5px; } #raisehandindicator { background: $raiseHandBg; } #connectionindicator { background: $connectionIndicatorBg; } .remotevideomenu { display: inline-block; position: absolute; top: 0px; right: 0; margin: 7px; z-index: $zindex3; width: 18px; height: 13px; color: #FFF; font-size: 8pt; } /** * Audio indicator on video thumbnails. */ .videocontainer>span.audioindicator { position: absolute; display: inline-block; left: 6px; top: 50%; margin-top: -17px; width: 6px; height: 35px; z-index: $zindex2; border: none; .audiodot-top, .audiodot-bottom, .audiodot-middle { opacity: 0; display: inline-block; @include circle(5px); background: $audioLevelShadow; margin: 1px 0 1px 0; transition: opacity .25s ease-in-out; -moz-transition: opacity .25s ease-in-out; } span.audiodot-top::after, span.audiodot-bottom::after, span.audiodot-middle::after { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; -webkit-filter: blur(0.5px); filter: blur(0.5px); background: $audioLevelBg; } } #reloadPresentation { display: none; position: absolute; color: #FFFFFF; top: 0; right:0; padding: 10px 10px; font-size: 11pt; cursor: pointer; background: rgba(0, 0, 0, 0.3); border-radius: 5px; background-clip: padding-box; -webkit-border-radius: 5px; -webkit-background-clip: padding-box; z-index: $reloadZ; /*The reload button should appear on top of the header!*/ } .audiolevel { display: inline-block; position: absolute; z-index: $zindex0; border-radius:1px; pointer-events: none; } #dominantSpeaker { visibility: hidden; width: 300px; height: 300px; margin: auto; position: relative; } #mixedstream { display:none !important; } #dominantSpeakerAvatar, .dynamic-shadow { width: 200px; height: 200px; } #dominantSpeakerAvatar { top: 50px; margin: auto; position: relative; border-radius: 100px; visibility: inherit; background-color: #000000; } .dynamic-shadow { border-radius: 50%; position: absolute; top: 50%; left: 50%; margin: -100px 0 0 -100px; transition: box-shadow 0.3s ease; } .userAvatar { @include maxSize(60px); @include absoluteAligning(); border-radius: 50%; height: 50%; width: auto; } .sharedVideoAvatar { height: 100%; width: 100%; object-fit: cover; } .noMic { position: absolute; border-radius: 8px; z-index: $zindex1; width: 100%; height: 100%; background-image: url("../images/noMic.png"); background-color: #000; background-repeat: no-repeat; background-position: center; } .noVideo { position: absolute; border-radius: 8px; z-index: $zindex1; width: 100%; height: 100%; background-image: url("../images/noVideo.png"); background-color: #000; background-repeat: no-repeat; background-position: center; } .videoMessageFilter { -webkit-filter: grayscale(.5) opacity(0.8); filter: grayscale(.5) opacity(0.8); } .remoteVideoProblemFilter { -webkit-filter: grayscale(100%); filter: grayscale(100%); } .videoProblemFilter { -webkit-filter: blur(10px) grayscale(.5) opacity(0.8); filter: blur(10px) grayscale(.5) opacity(0.8); } .videoThumbnailProblemFilter { -webkit-filter: grayscale(100%); filter: grayscale(100%); } #remoteConnectionMessage { display: none; position: absolute; width: auto; z-index: $zindex2; font-weight: 600; font-size: 14px; text-align: center; color: #FFF; opacity: .80; text-shadow: 0px 0px 1px rgba(0,0,0,0.3), 0px 1px 1px rgba(0,0,0,0.3), 1px 0px 1px rgba(0,0,0,0.3), 0px 0px 1px rgba(0,0,0,0.3); background: rgba(0,0,0,.5); border-radius: 5px; padding: 5px; padding-left: 10px; padding-right: 10px; } #localConnectionMessage { display: none; position: absolute; left: 0; width: 100%; top:50%; z-index: $zindex2; font-weight: 600; font-size: 14px; text-align: center; color: #FFF; opacity: .80; text-shadow: 0px 0px 1px rgba(0,0,0,0.3), 0px 1px 1px rgba(0,0,0,0.3), 1px 0px 1px rgba(0,0,0,0.3), 0px 0px 1px rgba(0,0,0,0.3); } .filmstrip-only { #videoResolutionLabel { display: none; } } .video-state-indicator { background: $videoStateIndicatorBackground; color: $videoStateIndicatorColor; cursor: pointer; font-size: 13px; height: 40px; line-height: 20px; text-align: center; min-width: 40px; padding: 10px 5px; border-radius: 50%; position: absolute; box-sizing: border-box; i { cursor: pointer; } } #videoResolutionLabel, .centeredVideoLabel.moveToCorner { z-index: $tooltipsZ; } .centeredVideoLabel { bottom: 45%; border-radius: 2px; display: none; -webkit-transition: all 2s 2s linear; transition: all 2s 2s linear; z-index: $centeredVideoLabelZ; &.moveToCorner { bottom: auto; } } .moveToCorner { position: absolute; top: 30px; right: 30px; } .moveToCorner + .moveToCorner { right: 80px; } .video-state-indicator-menu { display: none; padding: 10px; position: absolute; right: -10px; top: 20px; .video-state-indicator-menu-options { background: $popoverBg; border-radius: 3px; color: $popoverFontColor; margin-top: 20px; padding: 5px 0; position: relative; div { cursor: pointer; padding: 10px; padding-right: 30px; text-align: left; white-space: nowrap; &.active { background: $toolbarToggleBackground; } &:hover:not(.active) { background: $popupMenuSelectedItemBackground; } i { margin-right: 5px; vertical-align: middle; } } } .video-state-indicator-menu-options::after { content: " "; border-color: transparent transparent $popoverBg transparent; border-style: solid; border-width: 5px; position: absolute; right: 15px; top: -10px; } } .video-state-indicator:hover, .video-state-indicator *:hover { background: $toolbarSelectBackground; .video-state-indicator-menu { display: block; } }