mirror of
https://github.com/ianramzy/decentralized-video-chat.git
synced 2024-11-01 07:59:21 +08:00
Neomorphic buttons
This commit is contained in:
parent
53c1486793
commit
c3855ddda7
@ -5,6 +5,7 @@
|
|||||||
<title>Neon Chat</title>
|
<title>Neon Chat</title>
|
||||||
<link rel="shortcut icon" href="images/logo.svg">
|
<link rel="shortcut icon" href="images/logo.svg">
|
||||||
<link rel="stylesheet" href="../css/chat.css">
|
<link rel="stylesheet" href="../css/chat.css">
|
||||||
|
<script src="https://kit.fontawesome.com/9d7bb7e31a.js" crossorigin="anonymous"></script>
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
|
||||||
<meta property="og:title" content="Join your friends call - Neonchat">
|
<meta property="og:title" content="Join your friends call - Neonchat">
|
||||||
<meta property="og:description" content="Click the link to join this chat room using Neonchat">
|
<meta property="og:description" content="Click the link to join this chat room using Neonchat">
|
||||||
@ -14,7 +15,11 @@
|
|||||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-162048272-1"></script>
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-162048272-1"></script>
|
||||||
<script>
|
<script>
|
||||||
window.dataLayer = window.dataLayer || [];
|
window.dataLayer = window.dataLayer || [];
|
||||||
function gtag(){dataLayer.push(arguments);}
|
|
||||||
|
function gtag() {
|
||||||
|
dataLayer.push(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
gtag('js', new Date());
|
gtag('js', new Date());
|
||||||
gtag('config', 'UA-162048272-1');
|
gtag('config', 'UA-162048272-1');
|
||||||
</script>
|
</script>
|
||||||
@ -28,12 +33,30 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="buttons" id="buttons">
|
<div class="multi-button">
|
||||||
<div class="center">
|
<div class="buttonContainer">
|
||||||
<a href="/" class="round-button">Back</a>
|
<button class="hoverButton" onclick="{muteMicrophone()}">
|
||||||
<a class="round-button" onclick="{openFullscreen()}">Fullscreen</a>
|
<i id="mic-icon" class="fas fa-microphone fa-xs"></i>
|
||||||
<a class="round-button" onclick="{muteMicrophone()}" id="muteButton">Mute </a>
|
</button>
|
||||||
<a class="round-button" onclick="{pauseVideo()}" id="videoPauseButton">Pause </a>
|
<div class="HoverState" id="mic-text">Mute</div>
|
||||||
|
</div>
|
||||||
|
<div class="buttonContainer">
|
||||||
|
<button class="hoverButton" onclick="{openFullscreen()}">
|
||||||
|
<i class="fas fa-compress fa-xs"></i>
|
||||||
|
</button>
|
||||||
|
<div class="HoverState">Fullscreen</div>
|
||||||
|
</div>
|
||||||
|
<div class="buttonContainer">
|
||||||
|
<button class="hoverButton" onclick="{pauseVideo()}">
|
||||||
|
<i class="fas fa-video fa-xs" id="video-icon"></i>
|
||||||
|
</button>
|
||||||
|
<div class="HoverState" id="video-text">Pause Video</div>
|
||||||
|
</div>
|
||||||
|
<div class="buttonContainer">
|
||||||
|
<button class="hoverButton" onclick="{window.location.href = '/newroom'}">
|
||||||
|
<i class="fas fa-phone-slash fa-xs"></i>
|
||||||
|
</button>
|
||||||
|
<div class="HoverState">End Call</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -7,32 +7,29 @@
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
/*padding: 0 50px;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background: #16171B;
|
background: #16171B;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
/*background: #ececec;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
video {
|
video {
|
||||||
background: #292B32;
|
background: #292B32;
|
||||||
/*background: white;*/
|
|
||||||
margin: 0 5%;
|
margin: 0 5%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
/*box-shadow: rgba(118, 143, 255, 0.4) 0px 16px 24px 0px;*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#local-video {
|
#local-video {
|
||||||
width: 20%;
|
width: 20%;
|
||||||
height: auto;
|
height: auto;
|
||||||
-webkit-transform: scaleX(-1);
|
-webkit-transform: scaleX(-1);
|
||||||
transform: scaleX(-1);
|
transform: scaleX(-1);
|
||||||
|
background: #16171a;
|
||||||
}
|
}
|
||||||
|
|
||||||
#remote-video {
|
#remote-video {
|
||||||
@ -45,42 +42,8 @@ video {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.buttons {
|
|
||||||
width: 700px;
|
|
||||||
margin-left: -350px;
|
|
||||||
bottom: 0px;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttons a {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.round-button {
|
|
||||||
display: block;
|
|
||||||
width: 100px;
|
|
||||||
height: 60px;
|
|
||||||
line-height: 60px;
|
|
||||||
border-radius: 4px;
|
|
||||||
background: #292B32;
|
|
||||||
text-align: center;
|
|
||||||
text-decoration: none;
|
|
||||||
color: white;
|
|
||||||
transition: 0.2s;
|
|
||||||
margin: 20px;
|
|
||||||
font-family: "Heebo", sans-serif;
|
|
||||||
font-weight: 400;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.round-button:hover {
|
|
||||||
background: #3d3f47;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.snackbar-container {
|
.snackbar-container {
|
||||||
|
box-shadow: 9px 9px 16px #0a0b0c, -9px -9px 16px #222328;
|
||||||
transition: all .5s ease;
|
transition: all .5s ease;
|
||||||
transition-property: top, right, bottom, left, opacity;
|
transition-property: top, right, bottom, left, opacity;
|
||||||
font-family: "Heebo", sans-serif;
|
font-family: "Heebo", sans-serif;
|
||||||
@ -174,3 +137,56 @@ video {
|
|||||||
transform: none
|
transform: none
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*Neomorphic buttons*/
|
||||||
|
button {
|
||||||
|
border: none;
|
||||||
|
font-size: 2rem;
|
||||||
|
transition: all .3s ease-in-out;
|
||||||
|
color: gray;
|
||||||
|
background: transparent;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
color: white;
|
||||||
|
border-radius: 100px;
|
||||||
|
background: #16171a;
|
||||||
|
/*box-shadow: 9px 9px 16px #1e1f21, -9px -9px 16px #2f3035;*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.multi-button {
|
||||||
|
position: absolute;
|
||||||
|
right: 50px;
|
||||||
|
top: 50px;
|
||||||
|
z-index: 999;
|
||||||
|
/*border-radius: 50px;*/
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #16171a;
|
||||||
|
box-shadow: 9px 9px 16px #0a0b0c, -9px -9px 16px #222328;
|
||||||
|
padding: 15px;
|
||||||
|
display: grid;
|
||||||
|
grid-gap: 0.5rem;
|
||||||
|
width: 50px;
|
||||||
|
margin-left: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.HoverState {
|
||||||
|
color: white;
|
||||||
|
font-family: "Heebo", sans-serif;
|
||||||
|
position: absolute;
|
||||||
|
right: 70px;
|
||||||
|
white-space: nowrap;
|
||||||
|
top: 25px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttonContainer {
|
||||||
|
position: relative;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Neomorphic buttons*/
|
@ -282,39 +282,49 @@ function openFullscreen() {
|
|||||||
function muteMicrophone() {
|
function muteMicrophone() {
|
||||||
var muted = VideoChat.localStream.getAudioTracks()[0].enabled;
|
var muted = VideoChat.localStream.getAudioTracks()[0].enabled;
|
||||||
VideoChat.localStream.getAudioTracks()[0].enabled = !muted;
|
VideoChat.localStream.getAudioTracks()[0].enabled = !muted;
|
||||||
const mutedButton = document.getElementById("muteButton");
|
const micIcon = document.getElementById("mic-icon");
|
||||||
|
const micText = document.getElementById("mic-text");
|
||||||
if (muted) {
|
if (muted) {
|
||||||
mutedButton.innerText = "Unmute"
|
micIcon.classList.remove("fa-microphone");
|
||||||
|
micIcon.classList.add("fa-microphone-slash");
|
||||||
|
micText.innerText = "Unmute"
|
||||||
} else {
|
} else {
|
||||||
mutedButton.innerText = "Mute"
|
micIcon.classList.add("fa-microphone");
|
||||||
|
micIcon.classList.remove("fa-microphone-slash");
|
||||||
|
micText.innerText = "Mute"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function pauseVideo() {
|
function pauseVideo() {
|
||||||
var paused = VideoChat.localStream.getVideoTracks()[0].enabled;
|
var paused = VideoChat.localStream.getVideoTracks()[0].enabled;
|
||||||
VideoChat.localStream.getVideoTracks()[0].enabled = !paused;
|
VideoChat.localStream.getVideoTracks()[0].enabled = !paused;
|
||||||
const pausedButton = document.getElementById("videoPauseButton");
|
const micIcon = document.getElementById("video-icon");
|
||||||
|
const micText = document.getElementById("video-text");
|
||||||
if (paused) {
|
if (paused) {
|
||||||
pausedButton.innerText = "Unpause"
|
micIcon.classList.remove("fa-video");
|
||||||
|
micIcon.classList.add("fa-video-slash");
|
||||||
|
micText.innerText = "Unpause Video"
|
||||||
} else {
|
} else {
|
||||||
pausedButton.innerText = "Pause"
|
micIcon.classList.add("fa-video");
|
||||||
|
micIcon.classList.remove("fa-video-slash");
|
||||||
|
micText.innerText = "Pause Video"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//Show and hide buttons automatically
|
//Show and hide buttons automatically
|
||||||
var timedelay = 1;
|
var timedelay = 1;
|
||||||
|
|
||||||
function delayCheck() {
|
function delayCheck() {
|
||||||
if (timedelay === 5) {
|
if (timedelay === 5) {
|
||||||
$('#buttons').fadeOut();
|
$('.multi-button').fadeOut();
|
||||||
timedelay = 1;
|
timedelay = 1;
|
||||||
}
|
}
|
||||||
timedelay = timedelay + 1;
|
timedelay = timedelay + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).mousemove(function () {
|
$(document).mousemove(function () {
|
||||||
$('#buttons').fadeIn();
|
$('.multi-button').fadeIn();
|
||||||
timedelay = 1;
|
timedelay = 1;
|
||||||
clearInterval(_delay);
|
clearInterval(_delay);
|
||||||
_delay = setInterval(delayCheck, 500);
|
_delay = setInterval(delayCheck, 500);
|
||||||
@ -342,3 +352,15 @@ Snackbar.show({
|
|||||||
VideoChat.requestMediaStream();
|
VideoChat.requestMediaStream();
|
||||||
|
|
||||||
|
|
||||||
|
//Neomorphic buttons
|
||||||
|
$(".HoverState").hide();
|
||||||
|
$(document).ready(function () {
|
||||||
|
$(".hoverButton").mouseover(function () {
|
||||||
|
$(".HoverState").hide();
|
||||||
|
$(this).next().show();
|
||||||
|
});
|
||||||
|
$(".hoverButton").mouseout(function () {
|
||||||
|
$(".HoverState").hide();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
//Neomorphic buttons
|
Loading…
Reference in New Issue
Block a user