This repository has been archived on 2026-04-30. You can view files and clone it, but cannot push or open issues or pull requests.
huegasm/app/styles/app.scss
Egor Philippov cf57301693 latest push
2015-10-16 14:35:12 -07:00

1078 lines
18 KiB
SCSS

@import 'ember-paper';
@import 'bower_components/bootstrap-sass/assets/stylesheets/_bootstrap';
@import 'ember-modal-dialog/ember-modal-structure';
@import 'ember-modal-dialog/ember-modal-appearance';
@import "bower_components/font-awesome/scss/font-awesome";
$playerHeight: 400px;
$playerDefaultIconColor: #BBBBBB;
$footerHeight: 40px;
$playerBottomHeight: 340px;
$secondaryThemeColor: #F12B24;
$glowingText: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff, 0 0 20px #228DFF, 0 0 35px #228DFF, 0 0 40px #228DFF, 0 0 50px #228DFF, 0 0 75px #228DFF;
// BRIDGE FINDER
html {
min-height: 100%;
height: auto;
}
body {
font-family: 'Slabo 27px', serif;
margin-bottom: $footerHeight + 20px;
position: static;
}
body.dimmerOn {
.navigationItem {
text-shadow: $glowingText;
}
}
// temporary HAX...not working in FF
md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper {
transform: none !important;
}
.alert {
margin-bottom: 0;
}
.relative {
position: relative;
}
#settings {
padding-right: 5px;
text-align: right;
z-index: 3;
}
.settingsItem {
margin-left: 15px;
position: relative;
display: inline-block;
transition: 0.1s all ease-in-out;
cursor: pointer;
}
md-switch[disabled=disabled], md-switch[disabled=disabled] .md-container, md-slider[disabled=disabled] {
cursor: not-allowed;
}
.settingsItem .settings::before, .settingsItem .group::before {
font-size: 28px;
transition: 0.1s all ease-in-out;
}
.appSettingsItem {
padding: 10px;
transition: 0.1s all ease-in-out;
cursor: pointer;
}
.appSettingsItem.warn {
text-transform: uppercase;
background: rgba(255, 0, 0, 0.20);
}
.appSettingsItem.warn:hover {
background: rgba(255, 0, 0, 0.70);
color: white;
}
.appSettingsItem:hover {
background: darken(white, 20%);
}
.settingsItem span:hover {
text-decoration: underline;
md-icon.group {
color: black !important;
}
md-icon.settings {
color: black !important;
}
}
.ember-app {
padding-bottom: 50px;
}
#footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: $footerHeight;
p {
padding-left: 0;
text-align: center;
}
}
.cursorPointer {
cursor: pointer;
}
.bridgeFinder {
text-align: center;
padding-top: 20px;
}
.bridgeFinder .title {
font-size: 30px;
margin-bottom: 30px;
}
#bridgeInput {
md-input-container {
max-width: 200px;
margin: 0 auto;
}
}
md-progress-circular {
margin: 0 auto 20px auto !important;
}
md-progress-linear {
margin-bottom: 50px;
}
#pressButtonBridgeImg {
width: 200px;
margin: 0 auto 30px auto;
display: inherit;
}
.noTextDecoration {
text-decoration: none;
}
#bridgeButtonGroup {
width: 150px;
margin: 30px auto;
text-align: left;
}
// HUE CONTROLS
#appSettings {
position: absolute;
background: white;
box-shadow: 5px 10px 15px 5px rgba(0, 0, 0, 0.3);
width: 210px;
left: -172px;
top: 44px;
padding: 0;
border: none;
color: black;
}
.bootstrapTooltip md-icon {
font-size: 22px;
cursor: pointer;
-webkit-transform: translate3d(0, 0, 0); // hack for chrome to force hardware acceleration and stop flickering
}
md-list {
padding: 0;
}
md-list-item .md-no-style {
padding: 0;
}
.lightsTab * .tooltip {
left: -20px !important;
}
.colorRow * .tooltip {
left: -7px !important;
}
#hueControls {
max-width: 1200px;
position: relative;
}
.navigation {
text-align: center;
padding: 30px 0;
}
.navigationItem {
font-size: 18px;
padding: 0 10px 0 10px;
}
.navigationItem.active {
font-weight: bold;
cursor: default;
text-decoration: none !important;
}
.navigationItem:hover {
text-decoration: underline;
}
.color {
border: 1px solid rgba(0, 0, 0, 0.5);
position: absolute;
top: -53px;
right: 0;
}
.colorpicker {
padding: 10px;
background: rgba(0, 0, 0, 0.7);
box-shadow: 5px 10px 15px 5px rgba(0, 0, 0, 0.3);
color: #FFFFFF;
position: absolute;
width: 275px;
height: 275px;
right: 6px;
top: -9px;
z-index: 3;
}
#picker {
cursor: crosshair;
}
#loopAddition {
position: absolute;
left: 18px;
top: 13px;
font-size: 16px;
}
// LIGHT GROUP
md-slider {
cursor: pointer;
}
md-slider.md-default-theme .md-thumb:after {
border-color: $secondaryThemeColor;
background-color: $secondaryThemeColor;
}
.paper-sidenav {
overflow: visible;
}
#groupList {
box-shadow: 5px 10px 15px 5px rgba(0, 0, 0, 0.3);
border-radius: 0 0 5px 5px;
width: 300px;
top: 40px;
left: -245px;
position: absolute;
background-color: white;
max-height: 400px;
overflow: auto;
text-align: left;
padding: 0;
color: black;
}
.lightGroup {
margin: 0 auto 0 auto;
.tooltip.top {
margin-top: 4px;
margin-left: 0;
}
div {
display: inline-block;
}
}
.lightInactive {
cursor: pointer;
position: relative;
}
.lightInactive::before {
font-weight: bold;
position: absolute;
content: "X";
top: -10px;
left: 5px;
font-size: 40px;
color: rgba(255, 0, 0, 0.37);
font-family: cursive;
}
.horizontalLightGroup {
.lightInactive::before {
top: -9px;
left: 6px;
}
.tooltip.top {
margin-top: 1px;
margin-left: 2px;
}
}
.lightUnreachable {
display: none;
}
.lightActive {
cursor: pointer;
img {
transition-duration: 0.3s;
transition-property: transform;
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}
img:hover {
transform: scale(1.2);
}
}
.ember-modal-overlay.translucent {
background-color: rgba(0, 0, 0, 0.50);
}
md-icon {
color: rgba(0, 0, 0, 0.54) !important;
}
.addButton {
width: 100%;
cursor: pointer;
margin-left: 10px;
}
.removeButton {
margin: 10px 0 10px 60px;
}
.sideNavTitle {
margin-left: 16px;
margin-top: 10px;
text-align: left;
}
md-toolbar {
background-color: inherit !important;
}
// GROUP CONTROL
.groupRow {
transition: 0.1s all ease-in-out;
}
.groupRow.selectedRow {
background-color: #7F7F7F !important;
color: white;
}
.groupRow:hover {
background-color: #DEDEDE;
}
.groupRow.selectedRow .groupSelect {
cursor: default;
}
.groupSelect {
cursor: pointer;
padding: 10px 0 10px 10px;
width: 70%;
font-family: 'Open Sans', sans-serif;
}
.groupRow:hover * .close {
display: block;
}
.groupRow:hover * .close {
display: block;
}
.selectedRow * .close {
color: white !important;
}
.selectedRow.groupRow * .close:hover {
color: darken(white, 20%) !important;
}
.close:hover {
color: darken(#333333, 5%) !important;
}
.close:hover {
opacity: 1;
}
.close {
color: rgb(51, 51, 51);
display: none;
opacity: 1;
text-shadow: none;
}
// MUSIC TAB
.row {
margin: 0;
}
#musicTab{
padding: 0;
}
#slideToggle {
color: $playerDefaultIconColor;
background: #730B07;
div md-icon {
color: inherit !important;
}
}
#slideToggle:hover{
color: lighten($playerDefaultIconColor, 30%) !important;;
}
md-switch.md-default-theme.md-checked .md-bar {
background-color: rgba(241, 43, 36, 0.5);
}
md-switch.md-default-theme.md-checked .md-thumb {
background-color: $secondaryThemeColor;
}
#playerControls {
transition: all 0.2s ease-in-out;
position: absolute;
bottom: 0;
left: 0;
padding: 5px 10px;
width: 100%;
color: white !important;
z-index: 20;
background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7));
.tooltip.top {
margin-top: -15px;
}
.tooltip-arrow {
display: none;
}
.play-arrow, .pause {
font-size: 30px;
}
}
#playerTimeControls {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
display: inline-block;
margin-left: 1em;
}
.playerControllIcon {
color: $playerDefaultIconColor !important;
transition-duration: 0.1s;
margin-right: 5px;
}
.playerControllIcon.active {
color: $secondaryThemeColor !important;
}
.playerControllIcon:hover {
color: white !important;
}
#playNotification {
position: relative;
color: white;
top: 50%;
left: 50%;
opacity: 0;
background: black;
border-radius: 100%;
}
.fadeOut {
animation-duration: 1s;
animation-name: fadeOut;
}
@keyframes fadeOut {
from {
opacity: 0.8;
font-size: 24px;
}
to {
opacity: 0;
transform: scale(3);
}
}
#playerArea {
height: $playerHeight;
background-color: black;
display: inline-block;
padding: 0;
}
#playlist {
height: $playerHeight;
background-color: #1E1E1E;
padding: 0 5px 0 5px;
}
#playerArea * .noUi-origin {
background-color: black;
border-radius: 5px;
}
#playerArea * .noUi-base {
background-color: $secondaryThemeColor;
border-radius: 5px;
}
.noUi-base {
cursor: pointer;
}
.noUi-connect {
background-color: $secondaryThemeColor;
}
#volumeBar {
width: 5em;
height: 0.4em;
display: inline-block;
}
.noUi-handle {
cursor: pointer;
}
.noUi-horizontal .noUi-handle {
width: 0.4em;
height: 1.3em;
left: -0.071em;
top: -0.500em;
transition-duration: 0.1s;
background: $playerDefaultIconColor !important;
}
.noUi-horizontal .noUi-handle:hover {
background: white !important;
}
#playerArea * .noUi-handle::after, #playerArea * .noUi-handle::before {
content: none;
}
#seekSlider {
height: 6px;
margin-bottom: 10px;
transition-duration: 0.2s;
}
#seekSlider:hover {
height: 8px;
}
#seekSlider:hover * .noUi-handle {
opacity: 1;
}
#seekSlider * .noUi-handle {
border: none;
height: 13px;
width: 13px;
border-radius: 50%;
top: -4px;
left: -6px;
opacity: 0;
transition-duration: 0.1s;
background-color: $secondaryThemeColor !important;
box-shadow: none;
}
#playListControls {
min-height: 30px;
margin-top: 5px;
border-bottom: 1px solid #3a3a3a;
position: relative;
}
#playListArea, #playAreaMic, #playAreaYoutube {
background-color: white;
width: 100%;
height: 350px;
margin: 10px auto 0 auto;
border-radius: 5px;
transition: 0.1s all ease-in-out;
position: relative;
overflow: auto;
#dragHere {
position: absolute;
top: 27%;
font-size: 20px;
text-align: center;
width: 100%;
}
.library-music, .mic {
position: absolute;
top: 40%;
font-size: 100px;
opacity: 0.5;
width: 100%;
text-align: center;
}
.mic {
top: 30%;
font-size: 120px;
}
}
.ember-notify-cn {
top: 0;
bottom: auto;
}
.songArtist {
font-weight: bold;
}
#playListArea.dragHereHighlight {
background-color: white;
border: 5px dotted #5383ff;
}
#playListArea.draggingOver {
background-color: darken(white, 5%);
box-shadow: inset 0 0 20px 0 rgba(0, 0, 0, 1);
}
#fileInput {
width: 1px;
height: 1px;
visibility: hidden;
}
.playlistItem {
border-bottom: 1px solid rgba(128, 128, 128, 0.3);
border-top: 1px solid rgba(128,128,128,0.3);
height: 62px;
font-family: 'Open Sans', sans-serif;
padding: 0 20px 0 5px;
position: relative;
color: black;
background: darken(white, 5%);
.close {
font-size: 18px;
}
.albumArt {
height: 60px;
float: left;
margin-right: 5px;
}
.songInfo {
.songTitle {
max-height: 40px;
overflow: hidden;
}
.songArtist {
max-height: 20px;
overflow: hidden;
}
}
.audioRemoveButton {
position: absolute;
top: 20px;
right: 5px;
}
}
.playlistItem.active {
background: darken(white, 15%) !important;
border-top: 1px solid $secondaryThemeColor;
border-bottom: 1px solid $secondaryThemeColor;
}
.playlistItem:hover {
background: darken(white, 10%);
.close {
display: block;
}
}
#beatArea {
height: $playerBottomHeight;
position: relative;
padding: 20px 0 0 0;
* {
.noUi-target {
margin: 0 auto;
}
.noUi-base, .noUi-background {
background-color: #ADADAD;
border: 1px solid #797979;
}
.noUi-vertical {
height: 170px;
margin-top: 15px;
margin-bottom: 15px;
}
}
}
.star {
cursor: auto !important;
}
.savedStarTooltip + .tooltip .tooltip-arrow {
margin-left: 8px;
}
#beatOptionButtonGroup {
margin: 20px 0 10px 0;
}
.beatOption {
text-align: center;
md-switch {
margin: 0;
}
.optionDescription {
font-size: 13px;
}
button {
margin-top: 0;
}
}
#playerBottom {
color: black;
border: 1px solid black;
width: 100%;
background: white;
}
#beatContainer {
-webkit-transform: translate3d(0, 0, 0); // hack for chrome to force hardware acceleration and stop flickering
padding: 0;
height: $playerBottomHeight;
.speakerSwitch {
top: 0;
left: 0;
position: absolute;
margin-left: 0;
margin-bottom: 10px;
}
.debugFilteredSwitch {
top: 0;
right: 0;
position: absolute;
margin-left: 0;
margin-bottom: 10px;
}
}
#beatArea .lightGroup {
margin: 10px 20px 0 40px;
float: right;
div {
display: block;
padding: 10px;
}
}
#playerButtonGroup {
margin-top: 10px;
}
#beatHistory {
border: 1px solid #C5C5C5;
color: black;
height: 85%;
background-color: white;
border-radius: 10px;
width: 290px;
margin: 40px auto 0 auto;
overflow: auto;
padding: 10px;
box-shadow: 5px 10px 15px 5px rgba(0, 0, 0, 0.1);
p {
margin-bottom: 5px;
}
.filterBeat {
font-style: italic;
}
}
// FANCY SPEAKER
/* Variables */
$centersize: 100px;
$center1size: 250px;
$bezelsize: 285px;
$vibratesize: $centersize*1.06;
$vibratemargin:-$vibratesize/2;
$vibrateblurinner: 3px;
$vibrateblurouter: 2px;
/* Extenders */
%base {
border-radius: 100%;
}
%rivet {
position: absolute;
height: 8px;
width: 8px;
background-color: #555;
border-radius: 100%;
box-shadow: inset 0 0 3px #000, 0 0 2px #000;
}
/* Keyframes */
@keyframes vibrateInner {
50% {
-webkit-filter: blur($vibrateblurinner);
filter: blur($vibrateblurinner);
transform: scale(1.05);
}
}
@keyframes vibrateOuter {
0% {
-webkit-filter: blur($vibrateblurouter);
filter: blur($vibrateblurouter);
border: 15px solid #333;
}
30% {
-webkit-filter: blur(0);
filter: blur(0);
border: 17px solid #333;
}
50% {
-webkit-filter: blur($vibrateblurouter);
filter: blur($vibrateblurouter);
border: 15px solid #333;
}
65% {
-webkit-filter: blur(0);
filter: blur(0);
border: 17px solid #333;
}
70% {
-webkit-filter: blur($vibrateblurouter);
filter: blur($vibrateblurouter);
border: 15px solid #333;
}
80% {
-webkit-filter: blur($vibrateblurouter);
filter: blur($vibrateblurouter);
border: 17px solid #333;
}
100% {
-webkit-filter: blur($vibrateblurouter);
filter: blur($vibrateblurouter);
border: 15px solid #333;
}
}
#beatSpeakerCenterInner {
@extend %base;
height: $centersize;
width: $centersize;
position: absolute;
bottom: 60px;
right: 60px;
-webkit-filter: blur(1px);
filter: blur(1px);
background: rgb(0,0,0);
background: -moz-radial-gradient(center, ellipse cover, rgba(0,0,0,1) 0%, rgba(79,79,79,1) 0%, rgba(0,0,0,1) 100%);
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(0,0,0,1)), color-stop(0%,rgba(79,79,79,1)), color-stop(100%,rgba(0,0,0,1)));
background: -webkit-radial-gradient(center, ellipse cover, rgba(0,0,0,1) 0%,rgba(79,79,79,1) 0%,rgba(0,0,0,1) 100%);
background: -o-radial-gradient(center, ellipse cover, rgba(0,0,0,1) 0%,rgba(79,79,79,1) 0%,rgba(0,0,0,1) 100%);
background: -ms-radial-gradient(center, ellipse cover, rgba(0,0,0,1) 0%,rgba(79,79,79,1) 0%,rgba(0,0,0,1) 100%);
background: radial-gradient(ellipse at center, rgba(0,0,0,1) 0%,rgba(79,79,79,1) 0%,rgba(0,0,0,1) 100%);
box-shadow: 0 0 10px rgba(0, 0, 0, 1);
}
.vibrateInner{
-webkit-animation: vibrateInner 0.15s linear 1;
animation: vibrateInner 0.15s linear 1;
}
#beatSpeakerCenterOuter {
@extend %base;
position: absolute;
top: 16px;
left: 16px;
height: $center1size;
width: $center1size;
border: 15px solid #333;
box-shadow: -3px -3px 15px rgba(0, 0, 0, 0.4), inset -3px -3px 15px rgba(0, 0, 0, 0.5);
background: -moz-linear-gradient(130deg, rgba(117, 117, 117, 1) 55%, rgba(220, 220, 220, 1) 100%);
background: -webkit-linear-gradient(130deg, rgba(117, 117, 117, 1) 55%, rgba(220, 220, 220, 1) 100%);
background: -o-linear-gradient(130deg, rgba(117, 117, 117, 1) 55%, rgba(220, 220, 220, 1) 100%);
background: -ms-linear-gradient(130deg, rgba(117, 117, 117, 1) 55%, rgba(220, 220, 220, 1) 100%);
background: linear-gradient(130deg, rgba(117, 117, 117, 1) 55%, rgba(220, 220, 220, 1) 100%);
}
.vibrateOuter {
-webkit-animation: vibrateOuter 0.15s linear 1;
animation: vibrateOuter 0.15s linear 1;
}
.bezel {
@extend %base;
margin: 0 auto;
height: $bezelsize;
width: $bezelsize;
position: relative;
background-color: #A8A8A8;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.8), inset 3px 3px 10px rgba(0, 0, 0, 0.8), 0 0 2px rgba(0, 0, 0, 0.8), inset 0 0 30px -5px rgba(0, 0, 0, 0.8);
top: 50%;
transform: translateY(-50%);
}
.rivet1 {
@extend %rivet;
top: 6px;
left: 50%;
}
.rivet2 {
@extend %rivet;
bottom: 6px;
left: 50%;
}
.rivet3 {
@extend %rivet;
top: 50%;
left: 6px;
}
.rivet4 {
@extend %rivet;
top: 50%;
right: 6px;
}
.rivet5 {
@extend %rivet;
top: 18%;
left: 13.7%;
}
.rivet6 {
@extend %rivet;
top: 18%;
right: 13.5%;
}
.rivet7 {
@extend %rivet;
bottom: 17%;
left: 13.5%;
}
.rivet8 {
@extend %rivet;
bottom: 17%;
right: 13.5%;
}
#ytplayer{
display: block;
width: 100%;
height: 100%
}
div.dimmerOn {
color: white !important;
background: #171717 !important;
}
html.dimmerOn {
color: white;
background: #242424;
}
body.dimmerOn {
color: white;
background: #242424;
}
body.dimmerOn #bridgeInput label,
.group.dimmerOn,
.settings.dimmerOn,
.power-settings-new.dimmerOn,
.brightness-4.dimmerOn,
.color-lens.dimmerOn,
.flare.dimmerOn,
.loop.dimmerOn,
.library-music.dimmerOn {
color: inherit !important;
text-shadow: $glowingText;
opacity: 1 !important;
}
body.dimmerOn {
.md-track, .color {
background: white !important;
}
}
.dimmerWrapper {
font-size: 40px;
position: absolute;
left: -50px;
bottom: -16px;
cursor: pointer;
i.active {
text-shadow: $glowingText;
}
}
.noUi-value-vertical {
margin-top: -10px;
}
.noUi-value-vertical, .noUi-pips {
color: inherit !important;
font: 400 14px 'Slabo 27px';
}
.noUi-vertical .noUi-handle {
border: 1px solid #A3A0A0;
width: 26px;
}
.noUi-vertical .noUi-handle:after, .noUi-vertical .noUi-handle:before{
background: grey;
}
#saveBeatPreferencesStar {
position: absolute;
top: 0;
left: 0;
color: #F12B24 !important;
font-size: 25px;
}
button.md-warn {
background: $secondaryThemeColor;
}
.ember-modal-dialog {
padding: 20px;
}
.addMusicButton {
float: right;
color: white;
}
#addMusicChoices {
min-width: initial;
right: 0;
left: initial;
width: 100px;
top: 28px;
}
.dropdown-toggle {
padding: 4px;
}