From 54ef88b7f68a94bcb553a1f26725461f1408bb28 Mon Sep 17 00:00:00 2001 From: William Toohey Date: Mon, 2 Nov 2015 01:08:07 +1000 Subject: [PATCH] Cleaner CSS and initial Halloween UI --- css/hues-h.css | 149 ++++++++++++++++++++++++++++++++++++++++ css/hues-m.css | 19 +++-- css/hues-x.css | 49 +++---------- img/bones.png | Bin 0 -> 17956 bytes img/tombstone.png | Bin 0 -> 15283 bytes img/web-bottomright.png | Bin 0 -> 35767 bytes img/web-topleft.png | Bin 0 -> 29884 bytes img/web-topright.png | Bin 0 -> 24890 bytes index.html | 8 ++- js/HuesCore.js | 8 ++- js/HuesSettings.js | 2 +- js/HuesUI.js | 124 +++++++++++++++++++++++---------- 12 files changed, 273 insertions(+), 86 deletions(-) create mode 100644 css/hues-h.css create mode 100644 img/bones.png create mode 100644 img/tombstone.png create mode 100644 img/web-bottomright.png create mode 100644 img/web-topleft.png create mode 100644 img/web-topright.png diff --git a/css/hues-h.css b/css/hues-h.css new file mode 100644 index 0000000..d305d15 --- /dev/null +++ b/css/hues-h.css @@ -0,0 +1,149 @@ +.HalloweenUI { + font-family: 'PetMe64Web'; +} + +.hues-h-text { + color: #ff3300; +} + +.hues-h-textfade { + color: rgba(255, 51, 0, 0.6); +} + +.hues-m-beatbar.hues-h-beatbar { + border-style: none; + background: none; +} + +.hues-m-controls.hues-h-controls { + background: none; + border-style: none; + padding-top: 8px; + z-index: 1; +} + +.hues-m-songtitle.hues-h-text, .hues-m-imagename.hues-h-text { + padding: 4px 0px; + margin: 0px 5px; + background: none; + border-style: solid; + border-width: 0px 19px 0px 18px; + -moz-border-image: url(../img/bones.png) 0 19 0 18 repeat stretch; + -webkit-border-image: url(../img/bones.png) 0 19 0 18 repeat stretch; + -o-border-image: url(../img/bones.png) 0 19 0 18 repeat stretch; + border-image: url(../img/bones.png) 0 19 0 18 fill repeat stretch; +} + +.hues-m-huename.hues-h-text { + border: none; + background: none; + left: 38px; + right: 38px; + bottom: 2px; +} + +.hues-m-vol-bar.hues-h-vol-bar { + bottom: 13px; +} + +.hues-m-vol-label.hues-h-text { + bottom: 12px; +} + +.hues-m-hide.hues-h-text { + top: 40px; +} + +.hues-m-cog.hues-h-text { + top: 20px; +} + +.hues-m-question.hues-h-text { + top: 25px; +} + +.hues-m-songbutton.hues-h-text, .hues-m-imagebutton.hues-h-text { + margin-top: 17px; +} + +.hues-m-songbutton.hues-h-text + div, .hues-m-imagebutton.hues-h-text + div{ + top: -8px; +} + +.hues-m-prevbutton.hues-h-text, .hues-m-nextbutton.hues-h-text, .hues-m-actbutton.hues-h-text { + background: none; +} + +.hues-h-controls > .hues-m-leftinfo, .hues-h-controls > .hues-m-rightinfo { + margin-bottom: 5px; +} + +.hues-h-tombstone { + border-style: solid; + border-width: 22px 40px 0px 42px; + -moz-border-image: url(../img/tombstone.png) 22 42 0 42 repeat; + -webkit-border-image: url(../img/tombstone.png) 22 42 0 42 repeat; + -o-border-image: url(../img/tombstone.png) 22 42 0 42 repeat; + border-image: url(../img/tombstone.png) 22 42 0 42 fill repeat; + height: 36px; + position: absolute; + bottom: 0; + left: 0; + right: 0; + z-index: -10; +} + +.hues-h-text + input[type=range]::-webkit-slider-runnable-track { + background: #ff3300; +} + +.hues-h-text + input[type=range]::-webkit-slider-thumb { + background: #ff3300; +} + +.hues-h-text + input[type=range]::-moz-range-track { + background: #ff3300; +} + +.hues-h-text + input[type=range]::-moz-range-thumb { + background: #ff3300; +} + +.hues-h-text + input[type=range]::-ms-fill-lower { + background: #ff3300; +} +.hues-h-text + input[type=range]::-ms-thumb { + background: #ff3300; +} + +.hues-h-topleft, .hues-h-topright, .hues-h-bottomright { + position: absolute; + background-repeat: no-repeat; +} + +.hues-h-topleft, .hues-h-topright { + top: 0px; +} + +.hues-h-bottomright, .hues-h-topright { + right: 0px; +} + +.hues-h-topleft { + background-image: url("../img/web-topleft.png"); + width: 269px; + height: 237px; +} + +.hues-h-topright { + background-image: url("../img/web-topright.png"); + width: 215px; + height: 220px; +} + +.hues-h-bottomright { + background-image: url("../img/web-bottomright.png"); + bottom: 0px; + width:358px; + height: 284px; +} \ No newline at end of file diff --git a/css/hues-m.css b/css/hues-m.css index efab1e8..61cd5ba 100644 --- a/css/hues-m.css +++ b/css/hues-m.css @@ -61,7 +61,7 @@ font-size: 10px; text-align: center; color: rgba(255,255,255, 0.7); - bottom: 29px; + bottom: 79px; width: 100px; } @@ -184,10 +184,10 @@ right: 8px; } .hues-m-songtitle { - bottom: 5px; + bottom: 55px; } .hues-m-imagename { - bottom: 29px; + bottom: 79px; left: 108px; right: 108px; } @@ -207,7 +207,7 @@ .hues-m-leftbox { position: absolute; - bottom: 50px; + bottom: 0; left: 0; right: 50%; height: 54px; @@ -215,7 +215,7 @@ .hues-m-rightbox { position: absolute; - bottom: 50px; + bottom: 0; left: 50%; right: 0; height: 54px; @@ -231,8 +231,10 @@ user-select: none; font-size: 12px; width: 50%; + height: 100%; margin: 3px auto; float: left; + position: relative; } .hues-m-controlbuttons { @@ -463,10 +465,12 @@ input[type=range]::-ms-thumb { .hues-m-imagename { left: 300px; right: 300px; + bottom: 29px; } .hues-m-songtitle { left: 192px; right: 192px; + bottom: 5px; } .hues-m-leftinfo { left: 200px; @@ -474,15 +478,16 @@ input[type=range]::-ms-thumb { .hues-m-rightinfo { right: 200px; } + .hues-m-leftinfo, .hues-m-rightinfo { + bottom: 29px; + } .hues-m-leftbox { - bottom: 0; left: 0; right: auto; width: 192px; height: 54px; } .hues-m-rightbox { - bottom: 0; left: auto; right: 0; width: 192px; diff --git a/css/hues-x.css b/css/hues-x.css index 76e08e7..864fdbf 100644 --- a/css/hues-x.css +++ b/css/hues-x.css @@ -2,53 +2,24 @@ font-family: 'PetMe64Web'; } -.hues-x-controls { - position: absolute; - bottom: 0; - max-width: 992px; +.hues-m-controls.hues-x-controls { height: 50px; - margin: 0 auto; - overflow: hidden; - left: 8px; - right: 8px; - color: rgba(255,255,255,0.7); z-index: 1; + background: none; + border-style: none; } -.hues-x-beatbar { - position: absolute; - top: 0; - max-width: 992px; - height: 30px; - margin: 0 auto; - overflow: hidden; - left: 8px; - right: 8px; - color: white; -} - -.hues-x-beatbar{ - transform: translateY(0px); - -webkit-transform: translateY(0px); - transition: transform 1s ease-out; - -webkit-transition: -webkit-transform 1s ease-out; -} - -.hues-x-controls { - transform: translateY(0px); - -webkit-transform: translateY(0px); - transition: transform 1s ease-out; - -webkit-transition: -webkit-transform 1s ease-out; +.hues-x-controls > .hues-m-songtitle { + bottom: 5px; } -.hues-x-beatbar.hidden{ - transform: translateY(-40px); - -webkit-transform: translateY(-40px); +.hues-x-controls > .hues-m-imagename { + bottom: 29px; } -.hues-x-controls.hidden { - transform: translateY(104px); - -webkit-transform: translateY(104px); +.hues-m-beatbar.hues-x-beatbar { + background: none; + border-style: none; } .hues-x-light { diff --git a/img/bones.png b/img/bones.png new file mode 100644 index 0000000000000000000000000000000000000000..0d3dc7e8e59631c2455b5bbebbcb7f7f163539d9 GIT binary patch literal 17956 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 B(MJFP literal 0 HcmV?d00001 diff --git a/img/tombstone.png b/img/tombstone.png new file mode 100644 index 0000000000000000000000000000000000000000..d047e415b2deacbb3333a1149ae37ee7e81f6ef6 GIT binary patch literal 15283 zcmeI3Yitx%6vqc2Abm&>MZg%wEd&kh&dfg8?sU7P?Y6YQVri>w4G6O{cei7Ach;S0 zcUu$179U6iB&dKyXi!lT{XoKp;seD%8WP0^Ao#%#LNF?*rBp&fz&rb#-fpioVEl47 z*_l1}-19#(zkAQw`7-P4moF|Zm{mYgRB>Icw*j78;n#V`M0gAipL-6TCP!;qRf;N{ zrhg|;J9f^XDAzH$sYPq?E#pNcY!M{I4=jmr6wan7_o75p5Zi%9`$15Sl$-we=%9&~ zrE*iV!^irfRiI6-?T&%Q?&VElcf074Op81P?gS47!ax(~L^u>t`9!%XsmsIP`Y>an zlT)7Z3^YSXkR&oJ?L+!D80lvt4ATrL;GS{bX=3}=|tu81Zi%n`LD zC6dwc0#%I3QB77Nw5}`ol@6`kWYQC5Kk54lN3)3{YMLFS$Rva)!&z7+UyvkbW1=0g zQ1a3wkpUqP1`$n#aa`WGXq%!bYMU}f%B*|L#Bfb~zHIKi*BcJ!O|5Fxoe)79Y2HY+ zsVfSY2B0b(F%eXE!dofHclVkc$SuwYCEYXTwS$B_MwsqNg(bH_YK7eJUiqpR5Huy$ zq$nXzYM0e#5Ykmu^n=ZEL{j4FLv9A0om=Xh5bz2b@W8F;Fms%l<(jxs-eKjf*7+RE zv#dcRH51YBDUuxMLN%;5-p0Z0Y}7E!L^WXPNP;GeOT{?Xpd*QVK#7F~%_E0}AYh`A zpqt4J8fIoU6knx;lo-4$;IX-xe8YyQIaoL|54ZFaMt^RwoKg57R* zIYrLw5JX^w+1P;Jm60}tkCJ{kCc`EtgbZ`^tN*tt^2m%zRV%A-Yjzp7EZn%sHr5E9 z966eCgydv9iV86m=*3oU%2Zpne`VW~9+NCuUJ&(0<`MN;0Fs*-F`B!qY-Bo29=(9$ zqny$=gpZvg-UcGLf=WpxXN@hQDgiAn#6U$5?umaW^OWGo2vph4=siCq{|9TJ3Y|B$ z0^=*88(0Cf9sMsWklVXrn-B>C$-`u}ZDwG6i5;ws3!r3oVN)yz122eW<7)HCq?O*f}1u9~s*cGuQVCib6nAM9y4*s$u0C6i8vw?5yWsQI+@_`Z$B{V%gK z2cGF!d2P*4CpKNa)HjD-+_Ur2*|UA8_P%H@aZNdX@vBFNu6{Y~;(@)dRlobx`@bzI zmfsH2lX^bB=arR*hkLJhzZrfua7a0^QT4=s+<&!3+%R~g`RP4e&-uw+dkWqw;s;j@ zZEAMDDm-y)Aim+Tzorj;*ShLNS>cK|_HX*#b@{&4;?UBgHM5QeJ9pUHot$a*f^+c; zgI%XgFT~CiI@b418R(w25Z~8DH tIW|+e#V|H-n?CRK{ELMYb^ZFS)LiNXZr91L*Xgg-)>SX}eptDt=WnYDwO;@L literal 0 HcmV?d00001 diff --git a/img/web-bottomright.png b/img/web-bottomright.png new file mode 100644 index 0000000000000000000000000000000000000000..44b7bb57cf1c3c4a0fe246b3db86587ab5fdf61e GIT binary patch literal 35767 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 literal 0 HcmV?d00001 diff --git a/img/web-topleft.png b/img/web-topleft.png new file mode 100644 index 0000000000000000000000000000000000000000..2f5b7596d433ef6684b4fcf8ac1d76647f08c9c9 GIT binary patch literal 29884 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index d83535e..ec9a331 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ + @@ -24,9 +25,10 @@ zip.workerScriptsPath = "js/lib/"; var defaults = { respacks : [//"./respacks/Defaults_v5.0.zip", - "./respacks/CharPackagev0.03.zip", - "./respacks/HuesMixB.zip", - "./respacks/PackShit.zip" + //"./respacks/CharPackagev0.03.zip", + //"./respacks/HuesMixB.zip", + //"./respacks/PackShit.zip" + "./respacks/Halloween+Hues+v0.98.zip" ], //load : false, //debug autoplay : false, // debug diff --git a/js/HuesCore.js b/js/HuesCore.js index b3152eb..2bb87eb 100644 --- a/js/HuesCore.js +++ b/js/HuesCore.js @@ -63,7 +63,7 @@ function HuesCore(defaults) { } this.renderer = new HuesCanvas("waifu", this.soundManager.context, this); - this.uiArray.push(new RetroUI(), new WeedUI(), new ModernUI(), new XmasUI()); + this.uiArray.push(new RetroUI(), new WeedUI(), new ModernUI(), new XmasUI(), new HalloweenUI()); this.settings.connectCore(this); // Update with merged defaults = this.settings.defaults; @@ -539,6 +539,9 @@ HuesCore.prototype.settingsUpdated = function() { case "xmas": this.changeUI(3); break; + case "hlwn": + this.changeUI(4); + break; } switch (localStorage["colourSet"]) { case "normal": @@ -655,6 +658,9 @@ HuesCore.prototype.keyHandler = function(key) { case 52: // NUMBER_4 this.settings.set("currentUI", "xmas"); break; + case 53: // NUMBER_5 + this.settings.set("currentUI", "hlwn"); + break; case 67: // C this.toggleImageList(); break; diff --git a/js/HuesSettings.js b/js/HuesSettings.js index 29a0ae9..f059ca9 100644 --- a/js/HuesSettings.js +++ b/js/HuesSettings.js @@ -99,7 +99,7 @@ HuesSettings.prototype.settingsOptions = { }, currentUI : { name : "User Interface", - options : ["retro", "v4.20", "modern", "xmas"] + options : ["retro", "v4.20", "modern", "xmas", "hlwn"] }, colourSet : { name : "Colour Set", diff --git a/js/HuesUI.js b/js/HuesUI.js index a834b45..376fc10 100644 --- a/js/HuesUI.js +++ b/js/HuesUI.js @@ -541,6 +541,7 @@ ModernUI.prototype.initUI = function() { var volBar = document.createElement("div"); volBar.className = "hues-m-vol-bar"; + this.volBar = volBar; volCluster.appendChild(volBar); var label = document.createElement("div"); @@ -552,13 +553,13 @@ ModernUI.prototype.initUI = function() { volBar.appendChild(label); this.volLabel = label; - var infoToggle = document.createElement("div"); - infoToggle.innerHTML = '?'; - infoToggle.className = "hues-m-question"; - infoToggle.onclick = function() { + this.infoToggle = document.createElement("div"); + this.infoToggle.innerHTML = '?'; + this.infoToggle.className = "hues-m-question"; + this.infoToggle.onclick = function() { that.core.settings.showInfo(); }; - volCluster.appendChild(infoToggle); + volCluster.appendChild(this.infoToggle); var input = document.createElement("input"); input.type = "range"; @@ -579,19 +580,20 @@ ModernUI.prototype.initUI = function() { //Song/image controls var songs = document.createElement("div"); songs.className = "hues-m-controlblock"; + this.songBlock = songs; this.songList.className = "hues-m-songbutton"; var songControls = document.createElement("div"); songControls.className = "hues-m-controlbuttons"; this.songPrev.className = "hues-m-prevbutton"; this.songNext.className = "hues-m-nextbutton"; - var songShuffle = document.createElement("div"); - songShuffle.innerHTML = ''; - songShuffle.className = "hues-m-actbutton"; - songShuffle.onclick = function() {that.core.randomSong();}; + this.songShuffle = document.createElement("div"); + this.songShuffle.innerHTML = ''; + this.songShuffle.className = "hues-m-actbutton"; + this.songShuffle.onclick = function() {that.core.randomSong();}; songs.appendChild(this.songList); songControls.appendChild(this.songPrev); - songControls.appendChild(songShuffle); + songControls.appendChild(this.songShuffle); songControls.appendChild(this.songNext); songs.appendChild(songControls); rightBox.appendChild(songs); @@ -599,6 +601,7 @@ ModernUI.prototype.initUI = function() { var images = document.createElement("div"); images.className = "hues-m-controlblock"; this.imageList.className = "hues-m-songbutton"; + this.imageBlock = images; var imageControls = document.createElement("div"); imageControls.className = "hues-m-controlbuttons"; @@ -661,18 +664,19 @@ ModernUI.prototype.initUI = function() { }; ModernUI.prototype.toggleHide = function() { - this.beatBar.className = "hues-m-beatbar"; - this.beatCenter.className = "hues-m-beatcenter"; - this.controls.className = "hues-m-controls"; - this.hideRestore.className = "hues-m-hiderestore"; + // classList is new-ish, but if you have web audio you'll have this + this.beatBar.classList.remove("hidden"); + this.beatCenter.classList.remove("hidden"); + this.controls.classList.remove("hidden"); + this.hideRestore.classList.remove("hidden"); switch(this.hidden) { case 1: - this.beatBar.className = "hues-m-beatbar hidden"; - this.beatCenter.className = "hues-m-beatcenter hidden"; + this.beatBar.classList.add("hidden"); + this.beatCenter.classList.add("hidden"); /* falls through */ case 0: - this.controls.className = "hues-m-controls hidden"; - this.hideRestore.className = "hues-m-hiderestore hidden"; + this.controls.classList.add("hidden"); + this.hideRestore.classList.add("hidden"); } this.hidden = (this.hidden+1) % 3; }; @@ -773,8 +777,8 @@ function XmasUI() { this.yBlur = null; this.timer = null; - this.controls.className = "hues-x-controls"; - this.beatBar.className = "hues-x-beatbar"; + this.controls.className += " hues-x-controls"; + this.beatBar.className += " hues-x-beatbar"; this.lights = []; @@ -901,25 +905,75 @@ XmasUI.prototype.beat = function() { } }; -XmasUI.prototype.toggleHide = function() { - this.beatBar.className = "hues-x-beatbar"; - this.beatCenter.className = "hues-m-beatcenter"; - this.controls.className = "hues-x-controls"; - switch(this.hidden) { - case 1: - this.beatBar.className = "hues-x-beatbar hidden"; - this.beatCenter.className = "hues-m-beatcenter hidden"; - /* falls through */ - case 0: - this.controls.className = "hues-x-controls hidden"; - } - this.hidden = (this.hidden+1) % 3; -}; - XmasUI.prototype.setColourText = function(colour) {}; XmasUI.prototype.blurUpdated = function(x, y) {}; XmasUI.prototype.updateTime = function(time) {}; +function HalloweenUI() { + ModernUI.call(this); +} + +HalloweenUI.prototype = Object.create(ModernUI.prototype); +HalloweenUI.prototype.constructor = HalloweenUI; + +HalloweenUI.prototype.initUI = function() { + ModernUI.prototype.initUI.call(this); + + this.controls.className += " hues-h-controls"; + this.beatBar.className += " hues-h-beatbar"; + this.leftBox.className += " hues-h-leftbox"; + this.rightBox.className += " hues-h-rightbox"; + this.volBar.className += " hues-h-vol-bar"; + + this.beatLeft.className += " hues-h-text"; + this.beatRight.className += " hues-h-text"; + this.beatCenter.className += " hues-h-text"; + this.songShuffle.className += " hues-h-text"; + this.songNext.className += " hues-h-text"; + this.songPrev.className += " hues-h-text"; + this.songList.className += " hues-h-text"; + this.songName.className += " hues-h-text"; + this.imageMode.className += " hues-h-text"; + this.imageNext.className += " hues-h-text"; + this.imagePrev.className += " hues-h-text"; + this.imageList.className += " hues-h-text"; + this.imageName.className += " hues-h-text"; + this.hueName.className += " hues-h-text"; + + this.settingsToggle.className += " hues-h-text"; + this.hideToggle.className += " hues-h-text"; + this.infoToggle.className += " hues-h-text"; + this.volLabel.className += " hues-h-text"; + + this.timer.className = "hues-h-textfade"; + this.beatCount.className = "hues-h-textfade"; + this.xBlur.className = "hues-h-textfade"; + this.yBlur.className = "hues-h-textfade"; + + var leftBoxTomb = document.createElement("div"); + leftBoxTomb.className = "hues-h-tombstone"; + this.leftBox.appendChild(leftBoxTomb); + + var songTomb = document.createElement("div"); + songTomb.className = "hues-h-tombstone"; + this.songBlock.insertBefore(songTomb,this.songBlock.firstChild); + + var imageTomb = document.createElement("div"); + imageTomb.className = "hues-h-tombstone"; + this.imageBlock.insertBefore(imageTomb,this.imageBlock.firstChild); + + var topLeft = document.createElement("div"); + topLeft.className = "hues-h-topleft"; + var topRight = document.createElement("div"); + topRight.className = "hues-h-topright"; + var bottomRight = document.createElement("div"); + bottomRight.className = "hues-h-bottomright"; + + this.root.appendChild(topLeft); + this.root.appendChild(topRight); + this.root.appendChild(bottomRight); +} + // Positions and angles for the Xmas lights var xleft = [ {"angle": 122.529582194, "x": 19.4, "y": -19.35},