multistream/frontend/static/multistream.less
File Type: text/plain
@defaultfont: sans-serif;
@black: #000000;
@white: #eeeeee;
@grey: #666666;
@ltgrey: #c8c8c8;
@vltgrey: #aaaaaa;
@blue: #1969AB;
* { margin: 0; box-sizing: border-box; }
.clearfix {
&:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
}
.floatleft {
float: left;
}
.floatright {
float: right;
}
body, html {
height: 100%;
}
body {
font-family: @defaultfont;
background: url('images/body-bg-dark.jpg') center center fixed no-repeat;
background-size: cover;
}
input[type='text'], input[type='password'], textarea {
font-family: @defaultfont;
background: @white;
color: @black;
}
/* Transitions, YAY */
a:link,
.layoutselector,
button,
.channel {
transition: background-color 0.5s, color 0.5s, opacity 0.5s;
}
.rounded {
border-radius: 3px;
}
.squareright {
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.squareleft {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
.square {
border-radius: 0;
}
button, .button {
font-family: @defaultfont;
background: rgba(0, 0, 0, 0.1);
color: @black;
border: solid 1px @black;
.rounded;
font-weight: bold;
font-size: 18px;
cursor: pointer;
&:hover {
background: rgba(0, 0, 0, 0.2);
}
.viewtemplate & {
background: rgba(255, 255, 255, 0.8);
border: none;
margin: 1px;
color: @black;
border-radius: 3px;
font-weight: bold;
cursor: pointer;
text-align: center;
font-size: 16px;
line-height: 18px;
padding: 2px 4px;
&:hover {
background: @white;
}
&:active {
background: rgba(220, 220, 220, 1);
}
}
.streamoverlay & {
line-height: 20px;
}
}
.tooltiponly {
.tooltip;
font-size: 0;
&:after {
font-size: 16px;
}
}
.tooltip {
/*
position: relative;
&:hover:after{
background: @black;
opacity: 0.8;
border-radius: 3px;
bottom: 26px;
color: @white;
content: attr(title);
left: -2em;
padding: 5px 15px;
position: absolute;
z-index: 98;
width: 4em;
}
*/
}
.notice, .loading {
font-size: 110%;
font-style: italic;
}
.loading {
background: url('images/loading.gif') left center no-repeat;
padding-left: 24px;
}
span.deleteicon {
position: relative;
span {
position: absolute;
display: block;
top: 1px;
right: 5px;
width: 16px;
height: 16px;
background: url('images/strikethrough-black.png') no-repeat center center;
cursor: pointer;
opacity: 0.4;
&:hover {
opacity: 0.7;
}
}
input {
padding-right: 16px;
}
}
#bodywrapper {
height: 100%;
}
#backgroundoverlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.7);
overflow: auto;
z-index: -2;
}
#sidebar {
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 60px;
a.edit, a.rotate {
display: block;
background: rgba(0,0,0,0.5) none center center no-repeat;
border-radius: 3px;
margin: 5px;
opacity: 0.5;
border: solid 1px #888;
}
a.edit:hover,
a.edit.selected,
a.rotate:hover,
a.rotate.selected {
opacity: 1;
}
a.edit {
background-image: url('images/edit-white.png');
}
a.rotate {
background-image: url('images/rotate-white.png');
}
.sidebar-button {
width: 50px;
height: 50px;
}
}
#contentwrapper {
margin: 0 auto;
width: 100%;
height: 100%;
&.indextemplate, &.errortemplate {
position: relative;
width: 95%;
max-width: 1030px;
min-width: 768px;
height: auto;
margin-left: auto;
margin-right: auto;
box-shadow: 0 0 5px 5px rgba(0,0,0,0.2);
background: @white;
margin-bottom: 10%;
}
&.viewtemplate {
margin-left: 3%;
margin-left: calc(60px);
width: 97%;
width: calc(100% - 60px);
overflow: hidden;
}
}
#logo {
display: block;
width: 100%;
background: @black;
padding: 15px 40px 10px;
#sidebar & {
background: transparent;
position: absolute;
left: 0;
bottom: 0;
height: 50%;
img {
transform: rotate(270deg);
transform-origin: 30px center;
position: absolute;
left: 0;
bottom: 5px;
opacity: 0.5;
max-height: 60px;
}
}
}
#sponsorlogo {
position: absolute;
right: 30px;
top: 50px;
display: block;
width: 308px;
height: 60px;
background: url('images/monoprice-logo.png') left top no-repeat;
#sidebar & {
position: relative;
left: 3px;
top: 5px;
width: 53px;
height: 100px;
background: url('images/monoprice-sidebar.png') left top no-repeat;
}
}
#menu-primary-menu {
width: 100%;
list-style-type: none;
padding: 6px 12px 8px;
text-align: right;
background: darken(@white, 10%);
li {
display: inline-block;
font-size: 80%;
a, a.donate-btn {
color: @black;
background: transparent;
font-family: inherit;
font-size: inherit;
line-height: inherit;
vertical-align: inherit;
border-radius: 0;
text-decoration: none;
&:hover {
background: #1969ab;
color: @white;
}
}
&.tip {
float: right;
padding-top: 2px;
}
}
}
#layoutwrapper {
position:relative;
margin: 0 auto;
&.dimmed {
z-index: -1;
}
}
#buildlayoutform {
label, .streamfield {
font-size: 20px;
padding: .1em .2em;
margin: 5px 0;
}
label {
font-weight: bold;
padding-right: 20px;
}
.streamfield {
border: solid 1px @grey;
border-radius: 3px;
}
#submitbuttoncontainer {
padding: 0px 40px 20px;
display: none;
}
#cancelbutton {
display: none;
}
}
#submitbuttoncontainer {
text-align: center;
button {
width: 22%;
margin: 0 5px;
}
}
.streamfieldcontainer {
text-align: center;
padding-left: 54px;
}
.formcaption {
text-align: center;
font-size: 80%;
font-style: italic;
color: #888;
a {
color: @grey;
text-decoration: none;
&:hover {
color: #444;
}
}
#popupform & {
top: 1em;
right: 1em;
}
}
.streamstatusicon {
vertical-align: middle;
display: inline-block;
width: 38px;
height: 16px;
margin-left: 16px;
&[data-status="loading"] {
background: url('images/loading.gif') left center no-repeat;
}
&[data-status="doesntexist"] {
background: url('images/strikethrough-black.png') left center no-repeat;
}
&[data-status="exists"] {
background: url('images/checkmark-black.png') left center no-repeat;
}
&[data-status="existsandstreaming"] {
background: url('images/checkmark-camera-black.png') left center no-repeat;
}
}
#popupoverlay {
position: fixed;
left: 60px;
top: 0;
width: calc(100% - 60px);
height: 100%;
z-index: 99;
background: @black;
opacity: 0.3;
}
#popupform {
position: fixed;
left: 70px;
top: 10px;
z-index: 100;
width: 700px;
background: @white;
color: @black;
box-shadow: 0 0 5px 5px rgba(0,0,0,0.3);
max-height: 95%;
overflow: auto;
#channellist {
font-size: 80%;
}
.channellist {
.channel {
height: 45px;
&.live {
height: 90px;
}
}
.community {
height: 90px;
}
}
.layoutselectors {
display: none;
}
#clearbutton { display: none; }
#cancelbutton { display: inline-block; }
}
.callout {
&:before {
content: "";
position: absolute;
top: 10px;
left: -11px;
border-width: 0px 0px 11px 11px;
border-style: solid;
border-color: @white transparent;
display: block;
width: 0px;
}
&:after {
content: "";
position: absolute;
left: -11px;
top: 21px;
border-width: 11px 0px 0px 11px;
border-style: solid;
border-color: @white transparent;
display: block;
width: 0px;
}
}
#quickpicks {
text-align:left;
padding: 0 5px 5px;
button {
border-radius: 0;
float: none;
font-size: 80%;
width: auto;
&.selected {
background: @grey;
color: @white;
}
}
}
.layoutgroup {
margin-top: 20px;
text-align: center;
display: none;
&.current {
display: block;
}
#sidebar & {
margin-top: 0;
}
}
.layoutselector {
display: inline-block;
padding: 5px;
cursor: pointer;
border-radius: 3px;
vertical-align: middle;
opacity: 0.5;
&.current,
&:hover {
opacity: 1;
}
#buildlayoutform & {
&:hover,
&.current {
background: rgba(0,0,0,0.1);
padding: 4px;
border: solid 1px rgba(0,0,0,0.3);
}
}
input {
position: absolute;
left: -9999px;
}
}
.streamthumb,
.streamcontainer {
background: #006dc2;
}
.chatthumb,
.chatcontainer {
background: #ab9dc5;
}
.streamcontainer {
&.audio {
background: #107dd2;
}
&.chat {
}
}
.streamthumb,
.streamcontainer,
.chatthumb,
.chatcontainer {
color: @white;
}
.streamthumb,
.chatthumb {
text-transform: uppercase;
font-weight: bold;
}
.streamcontainer {
transition: top 0.5s, left 0.5s, height 0.5s, width 0.5s;
position:absolute;
display: none;
object, iframe, .videowrapper, video, .video-js {
height: 100%;
width: 100%;
border: none;
}
&.inactive object, &.inactive iframe {
opacity: 0;
}
&.dummy {
z-index: -1;
}
}
.chatcontainer {
transition: top 0.5s, left 0.5s, height 0.5s, width 0.5s;
display: none;
z-index: -10;
visibility: hidden;
position:absolute;
/* min-width: 300px; */
/*min-height: 360px;*/
iframe {
height: 99%;
height: calc(100% - 25px);
width: 100%;
border: none;
}
&.current {
z-index: 0;
visibility: visible;
}
&.inactive iframe {
opacity: 0;
}
&.dummy {
z-index: -1;
}
.reloadchat {
.tooltiponly;
}
}
.streamoverlay {
transition: top 0.5s, left 0.5s, height 0.5s, width 0.5s;
display: none;
position:absolute;
z-index:10;
height: 6.5em;
& > .audioicon,
& > .chaticon {
float: left;
clear: left;
margin: 4px 8px;
display: none;
opacity: 0.4;
}
.mainbuttons {
display: none;
button {
.tooltiponly;
.square;
&:first-child {
.squareright;
}
&:last-child {
.squareleft;
}
&:hover:after {
bottom: auto;
top:26px;
}
}
}
.auxbuttons {
display: none;
position: absolute;
right: 0.5em;
top: 0.5em;
text-align: left;
button {
.tooltiponly;
display: block;
&:hover:after {
bottom: -3px;
left:auto;
right: 30px;
}
}
}
&.player-twitchold .mainbuttons {
.bothbutton, .audiobutton {
display: none;
}
.chatbutton {
.rounded;
}
}
}
.overlaypopup {
height: 0;
padding: 0;
overflow: hidden;
transition: height 0.3s;
display: inline;
position: absolute;
left: 0;
top: 0;
width: 100%;
text-align: center;
background: none repeat scroll 0% 0% rgba(0, 0, 0, 0.7);
.streamoverlay:hover &,
.streamoverlay.dummy & {
height: 6.25em;
}
.streamoverlay:hover & {
.auxbuttons, .mainbuttons {
display: block;
}
}
}
.overlaycaption {
margin-top: .75em;
color: @white;
font-size: 24px;
}
.streamnumber {
display: none;
font-weight: bold;
font-size: 150%;
border-radius: 0.5em;
border: solid 1px @white;
width: 1em;
height: 1em;
line-height: 0.95em;
margin: 0.8em auto 0;
.dummy & {
display: block;
}
}
.streamname {
font-weight: bold;
text-transform: uppercase;
.inactive & {
display: none;
}
}
.audioicon {
vertical-align: top;
display: inline-block;
width: 16px;
height: 16px;
background: url('images/audio-white.png') center center no-repeat;
button & {
background-image: url('images/audio-black.png');
padding: 0;
display: inline-block;
float: none;
}
}
.chaticon {
vertical-align: middle;
display: inline-block;
width: 16px;
height: 16px;
background: url('images/chat-white.png') center center no-repeat;
button & {
background-image: url('images/chat-black.png');
padding: 0;
display: inline-block;
float: none;
}
}
.bothicon {
vertical-align: middle;
display: inline-block;
width: 16px;
height: 16px;
background: url('images/both-icon-white.png') center center no-repeat;
button & {
background-image: url('images/both-icon-black.png');
padding: 0;
display: inline-block;
float: none;
}
}
.profileicon {
vertical-align: middle;
display: inline-block;
width: 16px;
height: 16px;
background: url('images/profile-white.png') center center no-repeat;
button & {
background-image: url('images/profile-black.png');
padding: 0;
display: inline-block;
float: none;
}
}
.reloadicon {
vertical-align: middle;
display: inline-block;
width: 16px;
height: 16px;
background: url('images/reload-white.png') center center no-repeat;
button & {
background-image: url('images/reload-black.png');
}
}
.closeicon {
vertical-align: middle;
display: inline-block;
width: 16px;
height: 16px;
background: url('images/strikethrough-white.png') center center no-repeat;
button & {
background-image: url('images/strikethrough-black.png');
}
}
/* these classes get added to the containers that are the currently selected audio/chat */
.audio {
& > .audioicon {
display: block;
}
}
.chat {
& > .chaticon {
display: block;
}
}
.audio .audiobutton,
.chat .chatbutton,
.audio.chat .bothbutton {
background: #aaa;
cursor: default;
&:hover {
background: #aaa;
}
}
.chatcaption {
position: absolute;
bottom: 0;
display: block;
width: 100%;
background: @black;
color: @white;
font-size: 16px;
line-height: 25px;
padding: 0 0.5%;
background: rgba(0,0,0,0.2);
}
button.reloadchat {
float: right;
}
.arrow {
display: inline-block;
vertical-align: middle;
height: 10px;
width: 10px;
background: url('images/arrow-up-white.png') center center no-repeat;
button & {
background-image: url('images/arrow-up-black.png');
}
}
.chatmenuopener {
cursor: pointer;
position: relative;
}
ol.chatmenu {
display: none;
list-style: none;
margin: 0;
position: absolute;
bottom: 25px;
left: 5px;
padding: 5px;
background: #ab9dc5;
box-shadow: 0 -3px 2px 2px rgba(0, 0, 0, 0.1);
li {
color: @white;
text-align: left;
cursor: pointer;
display: none;
}
}
.channellist {
.channel, .community {
width: 12.5%;
height: 65px;
float: left;
padding: 5px;
cursor: pointer;
border-radius: 3px;
vertical-align: middle;
opacity: 0.3;
&:hover,
&.selected {
background: rgba(0,0,0,0.1);
padding: 4px;
border: solid 1px rgba(0,0,0,0.3);
}
}
.community {
opacity: 1;
width: 37.5%;
height: 130px;
&:hover {
background: transparent;
padding: 5px;
border: none;
.communityimage {
opacity: 0.8;
}
}
}
.grid-sizer {
width: 12.5%;
height: 60px;
}
.channel {
&.live {
opacity: 0.7;
width: 25%;
height: 130px;
&:hover {
opacity: 0.8;
}
.channelcaption {
font-size: 80%;
}
}
&.selected {
opacity: 1;
.channelcaption {
background-image: url('images/checkmark-white.png');
background-position: 5px center;
background-repeat: no-repeat;
}
}
&:hover {
opacity: 0.6;
}
}
.channelimage, .communityimage {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
width: 100%;
height: 100%;
position: relative;
}
.communityimage {
background-position: center 40%;
background-size: auto 60%;
border-radius: 3px;
border: solid 1px #aaa;
transition: opacity 0.5s;
}
.channelname, .communityname {
text-transform: uppercase;
font-weight: bold;
}
.channelcaption, .communitycaption {
position: absolute;
bottom: 0;
color: @white;
font-size: 60%;
text-align: right;
background: rgba(80,80,80,0.6);
padding: 1% 2% 2%;
width: 100%;
}
.game, .visit {
font-style: italic;
}
.visit {
font-size: 133%;
}
}
.authenticate {
text-align: center;
font-size: 120%;
}
/* Jquery UI */
.ui-tabs-tab {
display: inline-block;
a, a.link { text-decoration: none; }
}
.ui-widget, .ui-widget button {
font-family: inherit;
font-size: inherit;
}
.ui-widget-content {
border: none;
background: transparent;
}
#custom, #communities, #following, #error {
padding: 1em 40px;
}
.ui-tabs, .ui-tabs .ui-tabs-nav {
padding: 0;
border-radius: 0;
}
.ui-tabs .ui-widget-header {
background: @black;
border: none;
padding: 0 40px 20px;
#popupform & {
padding: 5px ;
}
}
.ui-tabs .ui-tabs-nav li {
margin: 0;
border-radius: 0;
border: none;
}
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
padding: 4px 14px;
&:hover {
color: @white;
background: @vltgrey;
}
}
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
background: transparent;
font-size: 19.5px;
#popupform & {
font-size: inherit;
}
}
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
}
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
color: @ltgrey;
}
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
background: @blue;
&:hover {
background: @blue;
}
}
/* CoinTipper Overrides */
[id*='-donation-overlay'] {
font-family: inherit;
}