decentralized-video-chat/public/css/chat.css

572 lines
10 KiB
CSS
Raw Normal View History

2020-03-25 05:34:57 +08:00
@import url("https://fonts.googleapis.com/css?family=Fira+Sans:600|Heebo:400,500,700&display=swap");
2020-03-29 00:36:59 +08:00
/*Fade in page on load*/
@-webkit-keyframes fadeIn {
2020-03-31 02:16:08 +08:00
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-moz-keyframes fadeIn {
2020-03-31 02:16:08 +08:00
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadeIn {
2020-03-31 02:16:08 +08:00
from {
opacity: 0;
}
to {
opacity: 1;
}
}
2020-04-06 12:44:16 +08:00
/* End Fade in page on load*/
2020-03-29 00:36:59 +08:00
2020-03-28 05:00:28 +08:00
body {
2020-03-31 02:16:08 +08:00
background: #16171b;
margin: 0;
padding: 0;
opacity: 0; /* make things invisible upon start */
-webkit-animation: fadeIn ease-in 1;
-moz-animation: fadeIn ease-in 1;
animation: fadeIn ease-in 1;
-webkit-animation-fill-mode: forwards;
-moz-animation-fill-mode: forwards;
animation-fill-mode: forwards;
-webkit-animation-duration: 0.3s;
-moz-animation-duration: 0.3s;
animation-duration: 0.3s;
2020-03-31 11:12:25 +08:00
overflow: hidden;
2020-03-25 05:34:57 +08:00
}
video {
2020-03-31 02:16:08 +08:00
background: #16171a;
}
2020-03-29 00:36:59 +08:00
#header {
2020-03-31 02:16:08 +08:00
position: absolute;
color: white;
font-family: "Fira Sans", sans-serif;
font-weight: 600;
2020-03-31 11:12:25 +08:00
font-size: 1rem;
2020-03-31 02:16:08 +08:00
white-space: nowrap;
2020-03-31 11:12:25 +08:00
top: 20px;
left: 20px;
2020-03-31 02:16:08 +08:00
float: left;
2020-03-29 00:36:59 +08:00
}
2020-03-31 02:16:08 +08:00
#header p,
img {
float: left;
padding: 7px;
2020-03-29 00:36:59 +08:00
}
2020-03-31 02:16:08 +08:00
#header,
a {
color: white;
text-decoration: none;
2020-03-29 01:35:06 +08:00
}
2020-04-06 12:44:16 +08:00
/*Moveable local video id*/
#moveable {
2020-03-31 02:16:08 +08:00
z-index: 100;
position: absolute;
width: 15%;
cursor: move;
}
2020-04-06 12:44:16 +08:00
/*Text inside local video*/
#moveable p {
2020-03-31 02:16:08 +08:00
z-index: 101;
position: absolute;
color: white;
font-family: "Heebo", sans-serif;
white-space: nowrap;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-weight: bold;
background: rgba(0, 0, 0, 0.12);
padding: 10px;
border-radius: 5px;
2020-03-24 13:04:30 +08:00
}
#local-video {
2020-03-31 02:16:08 +08:00
width: 100%;
height: auto;
2020-04-06 12:44:16 +08:00
border-radius: 10px;
2020-03-31 02:16:08 +08:00
-webkit-transform: scaleX(-1);
transform: scaleX(-1);
background: #16171a;
2020-03-24 13:04:30 +08:00
}
2020-04-06 01:30:57 +08:00
/*caption text*/
#remote-video-text {
2020-03-31 23:51:36 +08:00
box-sizing: border-box;
2020-03-31 02:16:08 +08:00
margin: 0;
2020-03-31 23:51:36 +08:00
width: 65vw;
2020-03-31 02:16:08 +08:00
position: absolute;
top: calc(80%);
left: 20vw;
z-index: 1;
color: white;
font-family: "Heebo", sans-serif;
2020-04-06 01:30:57 +08:00
font-size: 1.2rem;
2020-03-31 02:16:08 +08:00
font-weight: bold;
text-align: left;
background: rgba(0, 0, 0, 0.2);
2020-04-06 01:30:57 +08:00
border-radius: 0 0 10px 10px;
2020-03-31 02:16:08 +08:00
padding: 10px;
}
2020-03-24 13:04:30 +08:00
#remote-video {
2020-03-31 02:16:08 +08:00
padding: 0;
margin: 0;
position: absolute;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
2020-03-31 12:18:15 +08:00
width: 65%;
2020-03-31 02:16:08 +08:00
height: auto;
max-height: 100%;
max-width: 100%;
border-radius: 10px;
background-image: url(../images/loader.gif);
background-size: 400px auto;
background-repeat: no-repeat;
background-position: center center;
}
2020-03-31 12:18:15 +08:00
#remote-video.fullscreen {
width: 100%;
2020-03-28 02:06:07 +08:00
}
2020-04-06 12:44:16 +08:00
/*Buttons*/
2020-04-04 12:21:03 +08:00
.multi-button button {
2020-03-31 02:16:08 +08:00
border: none;
font-size: 1.5rem;
transition: all 0.3s ease-in-out;
color: gray;
background: transparent;
cursor: pointer;
2020-03-31 11:12:25 +08:00
padding: 7px;
2020-04-04 12:21:03 +08:00
border-radius: 5px;
2020-03-28 02:06:07 +08:00
}
button:focus {
2020-03-31 02:16:08 +08:00
outline: none;
}
2020-03-28 02:06:07 +08:00
button:hover {
2020-03-31 02:16:08 +08:00
color: white;
2020-03-28 02:06:07 +08:00
}
.multi-button {
2020-03-31 02:16:08 +08:00
position: absolute;
left: calc(7.5vw - 40px);
top: 50%;
-ms-transform: translate(0%, -50%);
transform: translate(0%, -50%);
z-index: 999;
border-radius: 10px;
background: #16171a;
box-shadow: 9px 9px 16px #0a0b0c, -9px -9px 16px #222328;
padding: 15px;
display: flex;
flex-direction: column;
justify-content: space-around;
/* grid-gap: 0.2rem; */
2020-03-31 11:12:25 +08:00
width: 40px;
2020-03-28 02:06:07 +08:00
}
.HoverState {
2020-03-31 02:16:08 +08:00
color: white;
font-family: "Heebo", sans-serif;
2020-03-31 11:12:25 +08:00
font-size: 0.8rem;
2020-03-31 02:16:08 +08:00
position: absolute;
2020-03-31 11:12:25 +08:00
left: 60px;
2020-03-31 02:16:08 +08:00
white-space: nowrap;
top: 0px;
font-weight: bold;
background: #16171a;
padding: 10px;
border-radius: 10px;
2020-03-28 02:06:07 +08:00
}
.buttonContainer {
2020-03-31 02:16:08 +08:00
position: relative;
margin: 0 auto;
2020-03-28 02:06:07 +08:00
}
2020-04-06 12:44:16 +08:00
/*.fa-phone-slash {*/
/* color: #470000;*/
/*}*/
2020-03-29 00:36:59 +08:00
2020-04-06 12:44:16 +08:00
/*End buttons*/
2020-03-29 00:36:59 +08:00
2020-04-06 12:44:16 +08:00
/*Text chat*/
#entire-chat {
2020-03-31 02:16:08 +08:00
position: absolute;
height: 100%;
right: 0;
2020-03-31 12:18:15 +08:00
width: 17.5vw;
2020-03-31 02:16:08 +08:00
padding: 0;
2020-03-30 02:59:59 +08:00
}
.compose {
2020-03-31 12:18:15 +08:00
width: calc(17.5vw - 40px);
height: 60px;
2020-03-31 02:16:08 +08:00
font-family: "Heebo", sans-serif;
2020-03-31 11:12:25 +08:00
position: fixed;
2020-03-31 02:16:08 +08:00
bottom: 0;
right: 0;
2020-03-31 11:12:25 +08:00
z-index: 100;
2020-03-31 02:16:08 +08:00
border-radius: 20px;
box-shadow: 6px 6px 12px #030506, -6px -6px 12px #292a30;
margin: 20px;
box-sizing: border-box;
2020-03-31 12:18:15 +08:00
padding: 16px;
2020-03-31 11:12:25 +08:00
background: #1c1d22;
overflow-x: hidden;
overflow: -moz-scrollbars-none;
-ms-overflow-style: none;
scrollbar-width: none;
2020-03-30 02:59:59 +08:00
}
2020-03-31 12:18:15 +08:00
.compose input {
2020-03-31 02:16:08 +08:00
font-family: inherit;
font-size: inherit;
border: none;
width: 100%;
height: calc(100% - 5px);
2020-03-31 02:16:08 +08:00
resize: none;
outline: none;
2020-03-31 11:12:25 +08:00
background-color: inherit;
color: white;
}
2020-03-31 12:18:15 +08:00
.compose input::placeholder {
2020-03-31 02:16:08 +08:00
color: white;
2020-03-30 02:59:59 +08:00
}
#chat-zone {
2020-03-31 02:16:08 +08:00
padding-top: 20px;
box-sizing: border-box;
position: absolute;
2020-03-31 11:12:25 +08:00
height: 100%;
2020-03-31 02:16:08 +08:00
right: 0;
2020-03-31 12:18:15 +08:00
width: 17.5vw;
2020-03-31 02:16:08 +08:00
overflow: scroll;
font-family: "Heebo", sans-serif;
2020-03-31 11:12:25 +08:00
font-size: 0.8rem;
2020-03-30 02:59:59 +08:00
}
2020-03-31 11:12:25 +08:00
#chat-zone::-webkit-scrollbar {
width: 0 !important;
}
2020-03-30 13:24:19 +08:00
2020-03-30 02:59:59 +08:00
#chat-zone .chat-messages .message-item {
2020-03-31 02:16:08 +08:00
position: relative;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-end;
padding: 0 16px 4px;
2020-03-31 11:12:25 +08:00
margin-bottom: 10px;
}
.chat-messages {
overflow-x: hidden;
2020-03-31 12:18:15 +08:00
padding-bottom: 80px;
2020-03-31 11:12:25 +08:00
overflow: -moz-scrollbars-none;
2020-03-30 02:59:59 +08:00
}
#chat-zone .chat-messages .message-item.customer {
2020-03-31 02:16:08 +08:00
padding-left: 40px;
2020-03-30 02:59:59 +08:00
}
2020-04-11 21:05:07 +08:00
/*received messages*/
2020-03-30 02:59:59 +08:00
#chat-zone .message-item.moderator .message-bloc {
2020-04-04 11:31:07 +08:00
background-color: rgb(29, 30, 33);
2020-03-31 02:16:08 +08:00
color: #fff;
position: relative;
display: flex;
align-items: center;
justify-content: center;
padding: 12px;
max-width: 100%;
border-radius: 20px 20px 20px 5px;
box-shadow: 6px 6px 12px #030506, -6px -6px 12px #23242a;
2020-03-30 02:59:59 +08:00
}
2020-04-04 12:21:03 +08:00
/*sent messages*/
2020-03-30 02:59:59 +08:00
#chat-zone .message-item.customer .message-bloc {
2020-04-04 11:31:07 +08:00
background-color: rgb(47, 48, 52);
2020-03-31 02:16:08 +08:00
color: #fff;
border-radius: 20px 20px 5px 20px;
box-shadow: 6px 6px 12px #030506, -6px -6px 12px #22232a;
2020-03-30 02:59:59 +08:00
}
#chat-zone .chat-messages .message-item.customer .message-bloc {
2020-03-31 02:16:08 +08:00
margin-left: auto;
2020-03-30 02:59:59 +08:00
}
2020-03-29 00:36:59 +08:00
2020-03-30 02:59:59 +08:00
#chat-zone .chat-messages .message-item .message-bloc {
2020-03-31 02:16:08 +08:00
position: relative;
display: flex;
align-items: center;
justify-content: center;
padding: 12px;
max-width: 100%;
2020-03-30 02:59:59 +08:00
}
2020-03-29 00:36:59 +08:00
.message {
2020-03-31 02:16:08 +08:00
word-break: break-all;
2020-03-30 02:59:59 +08:00
}
2020-03-29 00:36:59 +08:00
.message a {
text-decoration: underline;
}
2020-04-04 11:31:07 +08:00
.cssanimation {
animation-duration: 1s;
animation-fill-mode: both;
}
.fadeInBottom {
animation-name: fadeInBottom;
}
@keyframes fadeInBottom {
from {
opacity: 0;
transform: translateY(200%);
}
to {
opacity: 1;
}
}
2020-04-06 12:44:16 +08:00
/*End text chat*/
2020-04-11 21:05:07 +08:00
/* Begin mobile layout */
@media (max-width: 640px) {
2020-04-12 20:43:04 +08:00
/* @media (min-width: 320px) and (max-width: 480px) { */
2020-04-11 21:05:07 +08:00
2020-04-12 20:43:04 +08:00
html,
body {
width: 100%;
height: 100%;
font-size: 1em;
}
2020-04-12 20:43:04 +08:00
#header {
z-index: 5;
2020-04-11 21:05:07 +08:00
}
2020-04-12 20:43:04 +08:00
2020-04-11 21:05:07 +08:00
#header img {
width: auto;
height: 2rem;
}
2020-04-12 20:43:04 +08:00
2020-04-11 21:05:07 +08:00
#header p {
margin: 0;
line-height: 2rem;
}
#remote-video {
/* width: 75vw;
height: calc((16/9) * 75vw); */
width: 100%;
height: 100%;
2020-04-11 21:05:07 +08:00
/* border: 3px solid red; */
}
#moveable {
position: fixed;
top: 5rem;
left: 5rem;
min-width: 20%;
min-height: 10%;
width: initial;
height: initial;
max-width: 25%;
}
#moveable #local-video {
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
2020-04-11 21:05:07 +08:00
}
#moveable p {
text-align: center;
2020-04-11 21:05:07 +08:00
z-index: 101;
position: absolute;
color: white;
font-family: "Heebo", sans-serif;
white-space: pre-wrap;
2020-04-11 21:05:07 +08:00
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-weight: bold;
font-size: 1rem;
background: rgba(0, 0, 0, 0.12);
padding: 10px;
border-radius: 5px;
margin: 0;
}
#remote-video-text {
position: fixed;
top: 60% !important;
bottom: initial;
left: initial;
width: 80%;
height: auto;
margin: 0;
margin-left: 10%;
text-align: center;
2020-04-11 21:05:07 +08:00
}
.multi-button {
position: fixed;
2020-04-11 21:05:07 +08:00
left: 0;
top: initial;
bottom: 0;
2020-04-11 21:05:07 +08:00
width: 80vw;
height: 3rem;
margin: 0 10vw;
-ms-transform: translate(0%, 0%);
transform: translate(0%, 0%);
z-index: 999;
box-shadow: none;
2020-04-11 21:05:07 +08:00
border-radius: 10px;
padding: 0;
/* display: flex; */
2020-04-11 21:05:07 +08:00
flex-direction: row;
/* overflow: hidden; */
}
.buttonContainer {
position: relative;
height: 100%;
font-size: 3rem;
display: flex;
flex-direction: column;
2020-04-11 21:05:07 +08:00
align-items: center;
min-width: 0;
2020-04-16 11:57:40 +08:00
width: 100%;
margin: 0;
2020-04-11 21:05:07 +08:00
/* line-height: 1.5rem; */
}
.multi-button button {
position: relative;
2020-04-16 11:57:40 +08:00
width: 100%;
2020-04-11 21:05:07 +08:00
border: none;
font-size: 2rem;
transition: all 0.3s ease-in-out;
color: gray;
background: transparent;
cursor: pointer;
padding: 7px;
border-radius: 5px;
}
.HoverState {
display: none !important;
2020-04-11 21:05:07 +08:00
}
2020-04-12 20:43:04 +08:00
.buttonContainer:nth-child(3),
.buttonContainer:nth-child(5) {
display: none;
}
2020-04-12 20:43:04 +08:00
#entire-chat {
2020-04-11 21:05:07 +08:00
position: absolute;
top: 3rem;
right: 0;
height: calc(100% - 3rem - 3rem);
width: 100vw;
/* padding: 1rem 0; */
padding: 0;
2020-04-11 21:05:07 +08:00
/* border: 3px solid green; */
text-align: center;
/* background: #16171a; */
2020-04-11 21:05:07 +08:00
}
#chat-zone {
position: relative;
padding-top: 20px;
width: 100%;
height: calc(100% - 2rem);
margin-left: 0;
/* box-shadow: 4px 4px 12px #030506, -4px -4px 12px #292a30; */
2020-04-11 21:05:07 +08:00
/* border: 5px solid blue */
border-radius: 10px;
/* background: #16171a; */
2020-04-11 21:05:07 +08:00
}
#chat-zone .message-item.moderator .message-bloc,
#chat-zone .message-item.customer .message-bloc {
box-shadow: none;
}
2020-04-11 21:05:07 +08:00
.compose {
position: absolute;
font-size: 1rem;
left: 10%;
right: initial;
/* bottom: calc(3rem + 2rem); */
bottom: 0;
width: 80%;
2020-04-11 21:05:07 +08:00
height: 2rem;
2020-04-12 20:43:04 +08:00
margin: 0.5rem 0;
padding: 0;
box-shadow: none;
2020-04-11 21:05:07 +08:00
}
2020-04-12 20:43:04 +08:00
2020-04-11 21:05:07 +08:00
.compose input {
width: 90%;
height: 2rem;
line-height: 2rem;
2020-04-11 21:05:07 +08:00
}
2020-04-12 20:43:04 +08:00
2020-04-11 21:05:07 +08:00
.compose input::placeholder {
color: white;
}
}
2020-04-13 01:56:33 +08:00
/*Hide video controls on mobile*/
/*todo: still buggy on iOS, play/pause button pops up on load for iOS,
goes away after you press pause then play again*/
video ::-webkit-media-controls-panel {
display: none !important;
-webkit-appearance: none;
}
video ::--webkit-media-controls-play-button {
display: none !important;
-webkit-appearance: none;
}
video ::-webkit-media-controls-start-playback-button {
display: none !important;
-webkit-appearance: none;
}
2020-04-12 20:43:04 +08:00
/* End mobile layout */