WIP - everything is FUBAR: splitting stylesheets, splitting directories for future mobile work
17
.gitignore
vendored
|
|
@ -1,18 +1 @@
|
|||
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# compiled output
|
||||
/dist
|
||||
/tmp
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/bower_components
|
||||
|
||||
# misc
|
||||
/.sass-cache
|
||||
/connect.lock
|
||||
/coverage/*
|
||||
/libpeerconnection.log
|
||||
npm-debug.log
|
||||
testem.log
|
||||
/.idea/
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
{{#if bridgeUsername}}
|
||||
{{hue-controls bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial dimmerOn=dimmerOn storage=storage}}
|
||||
{{else}}
|
||||
<!--<a target="_blank" href="https://github.com/hoboman313/huegasm"><img style="position: absolute; top: 0; left: 0; border: 0; width: 30%; max-width: 149px;" src="https://camo.githubusercontent.com/82b228a3648bf44fc1163ef44c62fcc60081495e/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_left_red_aa0000.png"></a>-->
|
||||
{{#if ready}}
|
||||
{{bridge-finder bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial storage=storage}}
|
||||
{{else}}
|
||||
<div class="readyBlock">
|
||||
<div class="title"><img src="assets/images/logo.png" alt="Huegasm"></div>
|
||||
<p id="intro">Your lights, meet your music. Huegasm.</p>
|
||||
<p id="introParagraph">Huegasm is a free web application for managing and synchronizing your <a target="_blank" href="http://www2.meethue.com">Philips Hue lights</a> with the beat of your music.</p>
|
||||
<div class="embedContainerWrapper">
|
||||
<div class="embedContainer">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/zi9J6Qg-MPw" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
{{#paper-button raised=true primary=true action="isReady" class="goButton center-block"}}Go!{{/paper-button}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
<footer id="footer">
|
||||
<p><span class="relative"><span id="dimmer" {{action "toggleDimmer"}} class={{dimmerOnClass}}>
|
||||
</span>© {{year}} <a href="http://egorphilippov.me" target="_blank">Egor Philippov</a></span></p>
|
||||
</footer>
|
||||
BIN
mobile/TODO
Normal file
18
web/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# compiled output
|
||||
/dist
|
||||
/tmp
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/bower_components
|
||||
|
||||
# misc
|
||||
/.sass-cache
|
||||
/connect.lock
|
||||
/coverage/*
|
||||
/libpeerconnection.log
|
||||
npm-debug.log
|
||||
testem.log
|
||||
/.idea/
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
language: node_js
|
||||
node_js:
|
||||
- "0.12"
|
||||
- "4"
|
||||
|
||||
sudo: false
|
||||
|
||||
|
|
@ -10,12 +10,13 @@ cache:
|
|||
- node_modules
|
||||
|
||||
before_install:
|
||||
- export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH
|
||||
- "npm config set spin false"
|
||||
- "npm install -g npm@^2"
|
||||
- npm config set spin false
|
||||
- npm install -g bower
|
||||
- bower --version
|
||||
- npm install phantomjs-prebuilt
|
||||
- node_modules/phantomjs-prebuilt/bin/phantomjs --version
|
||||
|
||||
install:
|
||||
- npm install -g bower
|
||||
- npm install
|
||||
- bower install
|
||||
|
||||
53
web/README.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# Huegasm
|
||||
|
||||
This README outlines the details of collaborating on this Ember application.
|
||||
A short introduction of this app could easily go here.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
You will need the following things properly installed on your computer.
|
||||
|
||||
* [Git](http://git-scm.com/)
|
||||
* [Node.js](http://nodejs.org/) (with NPM)
|
||||
* [Bower](http://bower.io/)
|
||||
* [Ember CLI](http://ember-cli.com/)
|
||||
* [PhantomJS](http://phantomjs.org/)
|
||||
|
||||
## Installation
|
||||
|
||||
* `git clone <repository-url>` this repository
|
||||
* `cd huegasm`
|
||||
* `npm install`
|
||||
* `bower install`
|
||||
|
||||
## Running / Development
|
||||
|
||||
* `ember serve`
|
||||
* Visit your app at [http://localhost:4200](http://localhost:4200).
|
||||
|
||||
### Code Generators
|
||||
|
||||
Make use of the many generators for code, try `ember help generate` for more details
|
||||
|
||||
### Running Tests
|
||||
|
||||
* `ember test`
|
||||
* `ember test --server`
|
||||
|
||||
### Building
|
||||
|
||||
* `ember build` (development)
|
||||
* `ember build --environment production` (production)
|
||||
|
||||
### Deploying
|
||||
|
||||
Specify what it takes to deploy your app.
|
||||
|
||||
## Further Reading / Useful Links
|
||||
|
||||
* [ember.js](http://emberjs.com/)
|
||||
* [ember-cli](http://ember-cli.com/)
|
||||
* Development Browser Extensions
|
||||
* [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
|
||||
* [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
|
||||
|
||||
39
web/app/pods/components/huegasm-app/template.hbs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{{#if bridgeUsername}}
|
||||
{{hue-controls bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial dimmerOn=dimmerOn storage=storage}}
|
||||
{{else}}
|
||||
{{#if ready}}
|
||||
{{bridge-finder bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial storage=storage}}
|
||||
{{else}}
|
||||
<div class="readyBlock">
|
||||
<div class="title">
|
||||
<img src="assets/images/logo.png" alt="Huegasm">
|
||||
</div>
|
||||
|
||||
<p id="intro">
|
||||
Your lights, meet your music. Huegasm.
|
||||
</p>
|
||||
<p id="introParagraph">
|
||||
Huegasm is a free web application for managing and synchronizing your <a target="_blank" href="http://www2.meethue.com">Philips Hue lights</a> with the beat of your music.
|
||||
</p>
|
||||
|
||||
<div class="embedContainerWrapper">
|
||||
<div class="embedContainer">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/zi9J6Qg-MPw" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
{{#paper-button raised=true primary=true action="isReady" class="goButton center-block"}}Go!{{/paper-button}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
<footer id="footer">
|
||||
<p>
|
||||
<span class="relative">
|
||||
<span id="dimmer" {{action "toggleDimmer"}} class={{dimmerOnClass}}></span>© {{year}}
|
||||
|
||||
<a href="http://egorphilippov.me" target="_blank">
|
||||
Egor Philippov
|
||||
</a>
|
||||
</span>
|
||||
</p>
|
||||
</footer>
|
||||
|
|
@ -7,7 +7,8 @@ const {
|
|||
observer,
|
||||
isEmpty,
|
||||
isNone,
|
||||
$
|
||||
$,
|
||||
run
|
||||
} = Ember;
|
||||
|
||||
export default Component.extend(helperMixin, visualizerMixin, {
|
||||
|
|
@ -242,7 +243,7 @@ export default Component.extend(helperMixin, visualizerMixin, {
|
|||
|
||||
dragLeave(){
|
||||
// need to delay the dragLeave notification to avoid flickering ( hovering over some page elements causes this event to be sent )
|
||||
this.set('dragLeaveTimeoutHandle', setTimeout(()=>{ self.set('dragging', false); }, 500));
|
||||
this.set('dragLeaveTimeoutHandle', setTimeout(()=>{ this.set('dragging', false); }, 500));
|
||||
},
|
||||
|
||||
simulateKick(/*mag, ratioKickMag*/) {
|
||||
|
|
@ -1,18 +1,16 @@
|
|||
@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 'bridge-finder';
|
||||
@import 'common';
|
||||
@import 'dimmer';
|
||||
@import 'fancy-speaker';
|
||||
@import 'index';
|
||||
@import 'introjs';
|
||||
@import 'paper';
|
||||
@import 'variables';
|
||||
|
||||
$playerHeight: 400px;
|
||||
$playerDefaultIconColor: #BBBBBB;
|
||||
$footerHeight: 40px;
|
||||
$playerBottomHeight: 250px;
|
||||
$secondaryThemeColor: #F12B24;
|
||||
$glowingText: 0 0 2px #fff, 0 0 8px #fff, 0 0 20px #228DFF;
|
||||
$dimmerOnButtonColor: #404040;
|
||||
|
||||
// BRIDGE FINDER
|
||||
html {
|
||||
min-height: 100%;
|
||||
height: auto;
|
||||
|
|
@ -24,80 +22,6 @@ body {
|
|||
position: static;
|
||||
}
|
||||
|
||||
#intro {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#introParagraph {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.embedContainer {
|
||||
position:relative;
|
||||
padding-bottom:56.25%;
|
||||
padding-top:30px;
|
||||
height:0;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.embedContainerWrapper {
|
||||
max-width: 600px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.embedContainer iframe, .embedContainer object, .embedContainer embed {
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
.goButton {
|
||||
margin-top: 20px;
|
||||
border-radius: 100% !important;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
span {
|
||||
font-size: 28px;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.introjs-overlay {
|
||||
background: black;
|
||||
}
|
||||
|
||||
md-checkbox.md-default-theme .md-icon {
|
||||
border-color: inherit !important;
|
||||
}
|
||||
|
||||
md-checkbox.md-default-theme.md-checked .md-icon {
|
||||
background: $secondaryThemeColor;
|
||||
}
|
||||
|
||||
md-checkbox .md-label {
|
||||
width: 125px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.text-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.goButton:hover {
|
||||
background: darken(#3f51b5, 10%) !important;
|
||||
}
|
||||
|
||||
.md-button {
|
||||
flex-direction: unset;
|
||||
span {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.ember-notify-default.ember-notify-cn {
|
||||
top: 20px;
|
||||
}
|
||||
|
|
@ -107,10 +31,6 @@ md-checkbox .md-label {
|
|||
border: none;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#settings {
|
||||
padding-right: 5px;
|
||||
text-align: right;
|
||||
|
|
@ -118,41 +38,15 @@ md-checkbox .md-label {
|
|||
font-size: 16px;
|
||||
}
|
||||
|
||||
.settingsItem {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
transition: 0.1s all ease-in-out;
|
||||
cursor: pointer;
|
||||
span md-icon {
|
||||
position: relative;
|
||||
bottom: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.settingsItem:nth-of-type(2){
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
.settingsItem span:hover {
|
||||
text-decoration: underline;
|
||||
md-icon.group {
|
||||
color: black !important;
|
||||
}
|
||||
md-icon.settings {
|
||||
color: black !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ember-app {
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
|
@ -176,17 +70,6 @@ md-switch[disabled=disabled], md-switch[disabled=disabled] .md-container, md-sli
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bridgeFinder, .readyBlock {
|
||||
text-align: center;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
// preloading image
|
||||
.readyBlock:after {
|
||||
display: none;
|
||||
content: url(images/pressButtonBridge.png);
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-bottom: 30px;
|
||||
img {
|
||||
|
|
@ -194,31 +77,12 @@ md-switch[disabled=disabled], md-switch[disabled=disabled] .md-container, md-sli
|
|||
}
|
||||
}
|
||||
|
||||
#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;
|
||||
|
|
@ -237,19 +101,6 @@ md-progress-linear {
|
|||
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 {
|
||||
min-height: 400px;
|
||||
|
|
@ -330,19 +181,6 @@ md-list-item .md-no-style {
|
|||
}
|
||||
|
||||
// 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;
|
||||
|
|
@ -414,10 +252,6 @@ md-slider.md-default-theme .md-thumb:after {
|
|||
background-color: rgba(0, 0, 0, 0.50);
|
||||
}
|
||||
|
||||
md-icon {
|
||||
color: rgba(0, 0, 0, 0.54) !important;
|
||||
}
|
||||
|
||||
.addButton {
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
|
|
@ -434,16 +268,11 @@ md-icon {
|
|||
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;
|
||||
|
|
@ -552,14 +381,6 @@ md-toolbar {
|
|||
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;
|
||||
|
|
@ -905,98 +726,6 @@ md-switch.md-default-theme.md-checked .md-thumb {
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
div.dimmerOn {
|
||||
color: white !important;
|
||||
background: #171717 !important;
|
||||
}
|
||||
|
||||
html.dimmerOn {
|
||||
color: white;
|
||||
background: #242424;
|
||||
}
|
||||
|
||||
body.dimmerOn {
|
||||
color: white;
|
||||
background: #242424;
|
||||
.md-track {
|
||||
background: white;
|
||||
}
|
||||
.color {
|
||||
border: 1px solid white;
|
||||
}
|
||||
.playlistItem {
|
||||
color: #cdcdcd;
|
||||
background: $dimmerOnButtonColor;
|
||||
}
|
||||
.playlistItem.active {
|
||||
background: darken($dimmerOnButtonColor, 15%) !important;
|
||||
}
|
||||
.playlistItem:hover {
|
||||
background: darken($dimmerOnButtonColor, 10%);
|
||||
}
|
||||
.playlistItem .close {
|
||||
color: #cdcdcd !important;
|
||||
}
|
||||
.playlistItem .close:hover {
|
||||
color: white !important;
|
||||
}
|
||||
svg {
|
||||
-webkit-filter: drop-shadow(0 0 5px #228DFF);
|
||||
}
|
||||
md-input-container {
|
||||
label {
|
||||
color: white;
|
||||
}
|
||||
input {
|
||||
border-bottom-color: white !important;
|
||||
}
|
||||
input {
|
||||
color: white !important;
|
||||
}
|
||||
}
|
||||
.addNewMusic {
|
||||
background: $dimmerOnButtonColor
|
||||
}
|
||||
.addNewMusic:hover {
|
||||
background: darken($dimmerOnButtonColor, 5%);
|
||||
}
|
||||
#extraOptionsMenu {
|
||||
opacity: 0.8;
|
||||
}
|
||||
#extraOptionsMenu:hover {
|
||||
background: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.popover-content {
|
||||
color: black !important;
|
||||
}
|
||||
}
|
||||
|
||||
.power-settings-new.dimmerOn,
|
||||
.brightness-4.dimmerOn,
|
||||
.color-lens.dimmerOn,
|
||||
.flare.dimmerOn,
|
||||
.loop.dimmerOn,
|
||||
.group.dimmerOn,
|
||||
.settings.dimmerOn,
|
||||
.mic.dimmerOn,
|
||||
.star.dimmerOn,
|
||||
.library-music.dimmerOn {
|
||||
color: inherit !important;
|
||||
text-shadow: $glowingText;
|
||||
opacity: 0.9 !important;
|
||||
}
|
||||
|
||||
#dimmer {
|
||||
position: absolute;
|
||||
left: -50px;
|
||||
bottom: -10px;
|
||||
cursor: pointer;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: url(/favicon-96x96.png) center center no-repeat;
|
||||
background-size: 40px 40px;
|
||||
}
|
||||
|
||||
.noUi-value-vertical {
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
|
@ -1119,29 +848,3 @@ div.ember-modal-dialog {
|
|||
opacity: 1;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.introjs-helperNumberLayer {
|
||||
line-height: 17px;
|
||||
padding: 0;
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
}
|
||||
|
||||
#settings.introjs-fixParent{
|
||||
position: inherit !important;
|
||||
}
|
||||
|
||||
.introjs-tooltip {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.introjs-skipbutton{
|
||||
color: $secondaryThemeColor;
|
||||
}
|
||||
|
||||
.introjs-bullets ul li a.active {
|
||||
position: relative;
|
||||
height: 10px;
|
||||
width: 10px;
|
||||
top: -2px;
|
||||
}
|
||||
11
web/app/styles/common.scss
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
.text-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
.noTextDecoration {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
93
web/app/styles/dimmer.scss
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
@import 'variables';
|
||||
|
||||
div.dimmerOn {
|
||||
color: white !important;
|
||||
background: #171717 !important;
|
||||
}
|
||||
|
||||
html.dimmerOn {
|
||||
color: white;
|
||||
background: #242424;
|
||||
}
|
||||
|
||||
body.dimmerOn {
|
||||
color: white;
|
||||
background: #242424;
|
||||
.md-track {
|
||||
background: white;
|
||||
}
|
||||
.color {
|
||||
border: 1px solid white;
|
||||
}
|
||||
.playlistItem {
|
||||
color: #cdcdcd;
|
||||
background: $dimmerOnButtonColor;
|
||||
}
|
||||
.playlistItem.active {
|
||||
background: darken($dimmerOnButtonColor, 15%) !important;
|
||||
}
|
||||
.playlistItem:hover {
|
||||
background: darken($dimmerOnButtonColor, 10%);
|
||||
}
|
||||
.playlistItem .close {
|
||||
color: #cdcdcd !important;
|
||||
}
|
||||
.playlistItem .close:hover {
|
||||
color: white !important;
|
||||
}
|
||||
svg {
|
||||
-webkit-filter: drop-shadow(0 0 5px #228DFF);
|
||||
}
|
||||
md-input-container {
|
||||
label {
|
||||
color: white;
|
||||
}
|
||||
input {
|
||||
border-bottom-color: white !important;
|
||||
}
|
||||
input {
|
||||
color: white !important;
|
||||
}
|
||||
}
|
||||
.addNewMusic {
|
||||
background: $dimmerOnButtonColor
|
||||
}
|
||||
.addNewMusic:hover {
|
||||
background: darken($dimmerOnButtonColor, 5%);
|
||||
}
|
||||
#extraOptionsMenu {
|
||||
opacity: 0.8;
|
||||
}
|
||||
#extraOptionsMenu:hover {
|
||||
background: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.popover-content {
|
||||
color: black !important;
|
||||
}
|
||||
}
|
||||
|
||||
.power-settings-new.dimmerOn,
|
||||
.brightness-4.dimmerOn,
|
||||
.color-lens.dimmerOn,
|
||||
.flare.dimmerOn,
|
||||
.loop.dimmerOn,
|
||||
.group.dimmerOn,
|
||||
.settings.dimmerOn,
|
||||
.mic.dimmerOn,
|
||||
.star.dimmerOn,
|
||||
.library-music.dimmerOn {
|
||||
color: inherit !important;
|
||||
text-shadow: $glowingText;
|
||||
opacity: 0.9 !important;
|
||||
}
|
||||
|
||||
#dimmer {
|
||||
position: absolute;
|
||||
left: -50px;
|
||||
bottom: -10px;
|
||||
cursor: pointer;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: url(/favicon-96x96.png) center center no-repeat;
|
||||
background-size: 40px 40px;
|
||||
}
|
||||
53
web/app/styles/index.scss
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#intro {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#introParagraph {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.bridgeFinder, .readyBlock {
|
||||
text-align: center;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
// preloading image
|
||||
.readyBlock:after {
|
||||
display: none;
|
||||
content: url(images/pressButtonBridge.png);
|
||||
}
|
||||
|
||||
.embedContainer {
|
||||
position:relative;
|
||||
padding-bottom:56.25%;
|
||||
padding-top:30px;
|
||||
height:0;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.embedContainerWrapper {
|
||||
max-width: 600px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.embedContainer iframe, .embedContainer object, .embedContainer embed {
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
.goButton {
|
||||
margin-top: 20px;
|
||||
border-radius: 100% !important;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
span {
|
||||
font-size: 28px;
|
||||
width: 100%;
|
||||
}
|
||||
&:hover {
|
||||
background: darken(#3f51b5, 10%) !important;
|
||||
}
|
||||
}
|
||||
30
web/app/styles/introjs.scss
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
@import 'variables';
|
||||
|
||||
.introjs-overlay {
|
||||
background: black;
|
||||
}
|
||||
|
||||
.introjs-helperNumberLayer {
|
||||
padding: 0;
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
}
|
||||
|
||||
#settings.introjs-fixParent{
|
||||
position: inherit !important;
|
||||
}
|
||||
|
||||
.introjs-tooltip {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.introjs-skipbutton{
|
||||
color: $secondaryThemeColor;
|
||||
}
|
||||
|
||||
.introjs-bullets ul li a.active {
|
||||
position: relative;
|
||||
height: 10px;
|
||||
width: 10px;
|
||||
top: -2px;
|
||||
}
|
||||
109
web/app/styles/paper.scss
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
@import 'ember-paper';
|
||||
@import 'variables';
|
||||
|
||||
md-checkbox.md-default-theme .md-icon {
|
||||
border-color: inherit !important;
|
||||
}
|
||||
|
||||
md-checkbox.md-default-theme.md-checked .md-icon {
|
||||
background: $secondaryThemeColor;
|
||||
}
|
||||
|
||||
md-checkbox .md-label {
|
||||
width: 125px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.md-button {
|
||||
flex-direction: unset;
|
||||
span {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
md-switch[disabled=disabled], md-switch[disabled=disabled] .md-container, md-slider[disabled=disabled] {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
#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;
|
||||
}
|
||||
|
||||
.settingsItem span:hover {
|
||||
text-decoration: underline;
|
||||
md-icon.group {
|
||||
color: black !important;
|
||||
}
|
||||
md-icon.settings {
|
||||
color: black !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.settingsItem {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
transition: 0.1s all ease-in-out;
|
||||
cursor: pointer;
|
||||
span md-icon {
|
||||
position: relative;
|
||||
bottom: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
md-slider {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
md-slider.md-default-theme .md-thumb:after {
|
||||
border-color: $secondaryThemeColor;
|
||||
background-color: $secondaryThemeColor;
|
||||
}
|
||||
|
||||
.paper-sidenav {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
md-icon {
|
||||
color: rgba(0, 0, 0, 0.54) !important;
|
||||
}
|
||||
|
||||
md-toolbar {
|
||||
background-color: inherit !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;
|
||||
}
|
||||
7
web/app/styles/variables.scss
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
$playerHeight: 400px;
|
||||
$playerDefaultIconColor: #BBBBBB;
|
||||
$footerHeight: 40px;
|
||||
$playerBottomHeight: 250px;
|
||||
$secondaryThemeColor: #F12B24;
|
||||
$glowingText: 0 0 2px #fff, 0 0 8px #fff, 0 0 20px #228DFF;
|
||||
$dimmerOnButtonColor: #404040;
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
"ember-cli-uglify": "^1.2.0",
|
||||
"ember-export-application-global": "^1.0.4",
|
||||
"ember-load-initializers": "^0.5.0",
|
||||
"ember-modal-dialog": "^0.8.3",
|
||||
"ember-modal-dialog": "^0.9.0",
|
||||
"ember-notify": "^5.0.4",
|
||||
"ember-paper": "^0.2.14",
|
||||
"ember-resolver": "^2.0.3",
|
||||
|
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 7 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 292 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |