WebRTC audio/video call and conferencing server.
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.
 
 
 
 
 
 

486 lines
8.6 KiB

/*
* Spreed Speak Freely.
* Copyright (C) 2013-2014 struktur AG
*
* This file is part of Spreed Speak Freely.
*
* 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/>.
*
*/
#chat {
position: absolute;
bottom:0px;
right:260px;
width:260px;
top:0px;
pointer-events: none;
z-index:45;
overflow:hidden;
-webkit-perspective: 1000;
-moz-perspective: 1000;
-o-perspective: 1000;
perspective: 1000;
}
.withChat #chat .chatcontainer {
left:0px;
}
.withChat.withChatMaximized #chat {
left:0px;
width:auto;
.chatcontainer {
width:auto;
}
}
.chatcontainer {
position:absolute;
top:0px;
left:260px;
right:0px;
bottom:0px;
width:260px;
-webkit-transition: left 200ms ease-in-out;
-moz-transition: left 200ms ease-in-out;
-ms-transition: left 200ms ease-in-out;
-o-transition: left 200ms ease-in-out;
transition: left 200ms ease-in-out;
}
.chatlist {
position:absolute;
top:0px;
left:0px;
bottom:0px;
right:0px;
background: #e7e7e7;
.list-group {
margin-top:-1px;
margin-bottom:-1px;
max-height:100%;
overflow-x: hidden;
overflow-y: auto;
}
.list-group-item {
border-right:none;
border-left:none;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
}
.list-group-item .fa-lg {
display:inline-block;
width:18px;
text-align:center;
}
.list-group-item .badge {
background: #84b819;
border: 1px solid white;
font-size:.8em;
}
}
.chatpane {
position:absolute;
top:0px;
left:0px;
bottom:0px;
right:0px;
-webkit-transition: 0.3s;
-webkit-transform-style: preserve-3d;
-moz-transition: 0.3s;
-moz-transform-style: preserve-3d;
-o-transition: 0.3s;
-o-transform-style: preserve-3d;
transition: 0.3s;
transform-style: preserve-3d;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-o-backface-visibility: hidden;
backface-visibility: hidden;
}
.withChat .chatpane.flip {
-webkit-transform: rotateY(360deg);
-moz-transform: rotateY(360deg);
-o-transform: rotateY(360deg);
transform: rotateY(360deg);
}
.chat {
pointer-events: auto;
position:absolute;
top:0px;
bottom:0px;
right:0px;
left:0px;
background: #e7e7e7;
overflow:hidden;
display:none;
}
.chat.visible {
}
.chat.visible.active {
display:block;
}
.chat .chatbody {
position:absolute;
bottom:-1px;
left:0px;
right:0px;
top: 36px;
border-right:1px solid $bordercolor;
}
.chat.active .chatbody {
}
.chat .chatheader {
position:absolute;
left:0px;
right:0px;
top:0px;
background: $componentbg;
padding:0px 4px 0px 8px;
border-top: 1px solid $bordercolor;
border-bottom: 1px solid $bordercolor;
border-right: 1px solid $bordercolor;
height:36px;
line-height:36px;
}
.chat.active .chatheader {
}
.chat .chatheader .chatstatusicon {
position:absolute;
left:0px;
top:0px;
font-size:1.4em;
width:36px;
height:36px;
display:block;
text-align:center;
}
.chat .chatheader .chatheadertitle {
padding-left:28px;
display:inline;
}
.chat .chatheader .ctrl {
position:absolute;
top:0px;
right:1px;
color:rgba(0,0,0,0.3);
}
.chat .chatheader span {
display: inline-block;
max-width:60%;
text-overflow:ellipsis;
white-space:nowrap;
overflow:hidden;
pointer-events: none;
vertical-align: middle;
}
.chat .chatheader .ctrl i {
padding:6px;
cursor: pointer;
}
.chat .outputbox {
position:absolute;
left:0px;
right:0px;
top:0px;
bottom:75px;
}
.chat .output {
overflow-x: hidden;
overflow-y: auto;
padding: 0.4em 0;
height:100%;
}
.chat .output > i {
font-size:0.8em;
color: #aaa;
display:block;
padding:6px 0;
text-align:center;
clear:both;
}
.chat .output > i.p2p {
padding:6px 0;
font-weight: bold;
}
.chat .output .message {
background: #fff;
border: 1px solid #e5e5ef;
border-radius: 6px;
margin-bottom: 2px;
position: relative;
word-wrap: break-word;
padding:8px;
margin-left:20px;
margin-right:4px;
clear:both;
display:block;
}
.chat .output .message .timestamp {
font-size:0.8em;
color: #aaa;
text-align:right;
position:absolute;
top:8px;
right:8px;
}
.chat.with_pictures .output .message.is_self .timestamp {
right:58px;
}
.chat .output .message > ul {
list-style-type: none;
margin:0;
padding-left:0;
}
.chat .output .message > ul > li {
line-height:1.1em;
margin:4px 0;
padding-left:1.2em;
position:relative;
}
.chat .message li:before {
font-family: 'FontAwesome';
content: '\f075';
color:#ccc;
position:absolute;
left:0px;
width:12px;
text-align:center;
}
.chat .message.is_self li:before {
moz-transform: scale(-1, 1);
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1);
color:#ccc;
}
.chat .message li.unread:before {
content: '\f0eb';
color: #FE9A2E;
}
.chat .message li.sending:before {
content: '\f0ec';
}
.chat .message li.sent:before {
content: '\f003';
color:#5882FA;
}
.chat .message li.delivered:before {
content: '\f019';
color:#5882FA;
}
.chat .message li.received:before {
content: '\f06e';
color:#84b819;
}
.chat .message li.read:before {
content: '\f00c';
color:#ccc;
}
.chat .output .message .buddyimage {
position: absolute;
top: 4px;
width:46px;
height:46px;
left: 4px;
overflow: hidden;
border-radius: 2px;
background: $actioncolor1;
text-align:center;
}
.chat .output .message.is_self .buddyimage {
right: 4px;
left: auto;
}
.chat .output .message .buddyimage > i {
line-height:46px;
color:$actioncolor2;
}
.chat .output .message .buddyimage > img {
position: absolute;
left:0px;
right:0px;
bottom:0px;
top:0px;
display:block;
}
.chat.with_pictures .output .message.is_remote {
padding-left: 58px;
}
.chat .output .message:before, .chat .output .message:after {
content:"";
position:absolute;
border-style: solid;
width:0;
display:block;
}
.chat .output .message.is_remote:before {
top:4px;
bottom:auto;
left:-16px;
border-width: 10px 17px 10px 0;
border-color: transparent #fff;
}
.chat .output .message.is_remote:after {
top:5px;
bottom:auto;
left:-15px;
border-width: 9px 15px 9px 0;
border-color: transparent #fff;
}
.chat .output .message.is_self:before {
top:4px;
bottom:auto;
right:-16px;
border-width: 10px 0 10px 17px;
border-color: transparent #fff;
}
.chat .output .message.is_self:after {
top:5px;
bottom:auto;
right:-15px;
border-width: 9px 0 9px 15px;
border-color: transparent #fff;
}
.chat .output .message.with_name {
}
.chat .output .message.is_self {
background: #fff;
margin-right:20px;
margin-left:4px;
padding-right:0px;
}
.chat.with_pictures .output .message.is_self {
padding-right:54px;
}
.chat .output .message strong {
display:block;
padding-bottom:2px;
margin-right:40px;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.chat .chatbodybottom {
background: #e7e7e7;
position: absolute;
left:0px;
bottom:1px;
right:0px;
margin:0 auto;
}
.chat .typinghint {
padding:2px 6px 0 6px;
white-space: nowrap;
overflow: hidden;
font-size:.8em;
color: #aaa;
height:14px;
}
.chat .inputbox {
position:relative;
}
.chat .inputbox .btn {
position:absolute;
right:6px;
top:1px;
padding: 0.5em 1em;
display:none;
}
.chat .inputbox > div {
border-top:1px solid $bordercolor;
}
.chat .input {
display:block;
resize: none;
width:100%;
height:54px;
max-height:54px; /* FF hack */
margin:0px;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
border-color:transparent;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.chat .input.active, .chat .input:active, .chat .input:focus {
border-color:#66afe9;
}
@keyframes newmessage {
0% {background-color: rgba(132,184,25,1.0);}
50% {background-color: $componentbg;}
100% {background-color: rgba(132,184,25,1.0);}
}
@-webkit-keyframes newmessage {
0% {background-color: rgba(132,184,25,1.0);}
50% {background-color: $componentbg;}
100% {background-color: rgba(132,184,25,1.0);}
}
.chat.newmessage .chatheader, .chatlist .list-group-item.newmessage {
animation: newmessage 1s ease -0.3s infinite;
-webkit-animation: newmessage 1s ease -0.3s infinite;
}
.chat.newmessage .chatheader span:after {
content: "***";
position:absolute;
top:2px;
right:70px;
}
@media all and (max-height: 210px) {
.chat .inputbox {
height: auto;
}
.chat .input {
max-height: 2.5em;
}
.chat .outputbox {
bottom:45px;
}
.chat .chatbodybottom {
height: auto;
}
.chat .typinghint {
display: none;
}
.chat .chatheader {
display: none;
}
.chat .chatbody {
border-top: 1px solid $bordercolor;
top: 0px;
}
}