[mirotalksfu] - improve Video grid view and UI

هذا الالتزام موجود في:
Miroslav Pejic
2021-09-17 13:27:20 +02:00
الأصل 2c692fbf22
التزام 63ce1c7e4d
6 ملفات معدلة مع 394 إضافات و269 حذوفات

عرض الملف

@@ -1,3 +1,5 @@
@import url('https://fonts.googleapis.com/css?family=Comfortaa:wght@500&display=swap');
/*--------------------------------------------------------------
# Keyframes
--------------------------------------------------------------*/
@@ -30,11 +32,12 @@
}
:root {
--body-bg: linear-gradient(to left, #1f1e1e, #000000);
--msger-top: 50%;
--msger-left: 50%;
--msger-height: 680px;
--msger-width: 420px;
--msger-bg: linear-gradient(to left, #383838, #000000);
--msger-bg: linear-gradient(to left, #1f1e1e, #000000);
--left-msg-bg: #222328;
--right-msg-bg: #0a0b0c;
--box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
@@ -42,7 +45,7 @@
* {
outline: none;
font-family: 'Verdana';
font-family: 'Comfortaa';
}
html {
@@ -50,37 +53,113 @@ html {
}
body {
background-image: url('../images/background.jpg');
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
background: var(--body-bg);
}
/*--------------------------------------------------------------
# Control buttons
# Loading...
--------------------------------------------------------------*/
#loadingDiv {
color: white;
padding: 30px;
border-radius: 10px;
background: var(--body-bg);
}
#loadingDiv h1 {
font-size: 70px;
}
#loadingDiv pre {
padding: 5px;
}
/*--------------------------------------------------------------
# Buttons bar
--------------------------------------------------------------*/
#openNavButton {
z-index: 2;
position: absolute;
cursor: pointer;
padding: 10px;
font-size: 24px;
color: white;
background: rgba(0, 0, 0, 0.4);
border-radius: 10px;
}
.sidenav {
z-index: 3;
height: 100%;
width: 0;
position: fixed;
top: 0;
left: 0;
background-color: transparent;
overflow-x: hidden;
transition: 0.5s;
padding-top: 60px;
animation: show 0.4s ease;
}
.sidenav button {
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 20px;
transition: 0.3s;
}
.sidenav button:hover {
color: rgb(0, 180, 50);
}
.sidenav .closebtn {
position: absolute;
top: 0;
right: 25px;
font-size: 36px;
margin-left: 50px;
}
.sidenav::-webkit-scrollbar {
width: 5px;
}
.sidenav::-webkit-scrollbar-track {
background: transparent;
}
.sidenav::-webkit-scrollbar-thumb {
background: rgb(255 255 255 / 40%);
}
@media screen and (max-height: 450px) {
.sidenav {
padding-top: 20px;
}
.sidenav button {
font-size: 20px;
}
}
#control {
z-index: 1;
position: fixed;
padding: 10px;
top: 0;
width: 100%;
width: 250px;
background: black;
}
#control button {
border-radius: 5px;
}
#control p {
font-size: small;
cursor: default;
}
#exitButton:hover {
color: red;
}
#settings {
position: relative;
}
/*--------------------------------------------------------------
# Room QR
--------------------------------------------------------------*/
@@ -91,100 +170,6 @@ body {
align-items: center;
}
/*--------------------------------------------------------------
# Video grid
--------------------------------------------------------------*/
.containers {
display: grid;
grid-template-columns: repeat(2, 1fr);
column-gap: 10px;
row-gap: 10px;
border-radius: 5px;
}
@media only screen and (max-width: 720px) {
.containers {
display: grid;
grid-template-columns: 1fr;
column-gap: 10px;
row-gap: 10px;
border-radius: 5px;
}
}
.vid {
flex: 0 1 auto;
height: 360px;
border-radius: 10px;
cursor: pointer;
}
video {
width: 100%;
height: 100%;
object-fit: cover;
box-shadow: var(--box-shadow);
}
video:hover {
opacity: 0.9;
}
video:fullscreen {
object-fit: contain; /* cover; */
opacity: 1;
}
.mirror {
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
transform: rotateY(180deg);
}
#videoMedia {
margin-top: 50px;
}
#localMedia,
#remoteVideos {
margin: 10px;
cursor: default;
}
.pn {
position: absolute;
display: flex;
align-items: center;
padding: 10px;
margin: 10px;
width: auto;
height: 30px;
border-radius: 5px;
margin-top: 325px;
color: white;
background: rgba(0, 0, 0, 0.7);
}
.d,
.d video {
position: relative;
}
.d p {
position: absolute;
padding: 10px;
margin: 10px;
width: auto;
height: 30px;
border-radius: 5px;
top: 315px;
color: white;
background: rgba(0, 0, 0, 0.7);
display: flex;
align-items: center;
}
/*--------------------------------------------------------------
# Dropdown menù
--------------------------------------------------------------*/
@@ -195,21 +180,20 @@ video:fullscreen {
}
.dropdown-content {
z-index: 2;
display: none;
position: absolute;
margin: auto;
padding: 10px;
min-width: 200px;
max-width: 230px;
background-color: rgba(0, 0, 0, 0.7);
color: white;
overflow: auto;
overflow: hidden;
border-radius: 5px;
box-shadow: var(--box-shadow);
}
.dropdown-content select {
width: auto;
width: 210px;
font-size: small;
}
@@ -217,15 +201,15 @@ video:fullscreen {
# Recording
--------------------------------------------------------------*/
.recording {
display: flex;
#recording {
position: relative;
}
.recording button,
.recording p {
#recording button,
#recording p {
padding: 5px;
margin: 1px;
font-size: 0.8em;
font-size: 1.2rem;
border-radius: 5px;
}
@@ -234,7 +218,7 @@ video:fullscreen {
--------------------------------------------------------------*/
.chat-room {
z-index: 3;
z-index: 4;
display: none;
position: fixed;
height: var(--msger-height);
@@ -406,7 +390,7 @@ video:fullscreen {
.chat-msger-inputarea {
display: flex;
padding: 10px;
background: #222328;
background: #1f1e1e;
}
.chat-msger-input {
@@ -427,14 +411,13 @@ video:fullscreen {
--------------------------------------------------------------*/
emoji-picker {
top: 0px;
position: absolute;
top: 45px;
width: 100%;
height: 100%;
height: 92%;
--background: #16171b;
--num-columns: 9;
--num-columns: 8;
--emoji-size: 1.5rem;
overflow: hidden;
}
/*--------------------------------------------------------------
@@ -506,6 +489,7 @@ emoji-picker {
}
.center {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
@@ -525,7 +509,7 @@ emoji-picker {
p,
button {
background: black;
background: transparent;
color: white;
border: none;
}
@@ -619,3 +603,11 @@ button:hover {
opacity: 0.5;
}
}
/*
z-index:
- 1 videoMediaContainer
- 2 buttonBar
- 3 sidenav
- 4 chat
*/

80
public/css/VideoGrid.css Normal file
عرض الملف

@@ -0,0 +1,80 @@
/*--------------------------------------------------------------
# Video grid
--------------------------------------------------------------*/
#videoMediaContainer {
z-index: 1;
display: flex;
align-content: center;
flex-wrap: wrap;
align-items: center;
justify-content: center;
vertical-align: middle;
position: absolute;
left: 0px;
bottom: 0px;
top: 0px;
right: 0px;
}
#videoMediaContainer div {
/* Camera */
position: relative;
vertical-align: middle;
align-self: center;
border-radius: 10px;
overflow: hidden;
display: inline-block;
background: transparent;
box-shadow: 0px 12px 22px rgba(0, 0, 0, 0.4);
animation: show 0.4s ease;
}
#videoMediaContainer p {
position: absolute;
bottom: 0;
color: white;
font-size: 14px;
display: flex;
align-items: center;
padding: 5px;
margin: 5px;
width: auto;
height: 25px;
border-radius: 5px;
background: rgba(0, 0, 0, 0.4);
}
video {
width: 100%;
height: 100%;
object-fit: cover;
box-shadow: var(--box-shadow);
cursor: pointer;
}
video:hover {
opacity: 0.9;
}
video:fullscreen {
object-fit: contain;
opacity: 1;
}
.mirror {
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
transform: rotateY(180deg);
}
@keyframes show {
0% {
opacity: 0;
transform: scale(0.4) translateY(20px);
}
100% {
opacity: 1;
transform: scale(1) translateY(0);
}
}