Hue clock.
Hour, minute, && seconds are represented by binary numbers 0,1. Standard time is displayed at bottom of screen. Meant to be a full screen demo.
A Pen by Tiffany Rayside on CodePen.
Hue clock.
Hour, minute, && seconds are represented by binary numbers 0,1. Standard time is displayed at bottom of screen. Meant to be a full screen demo.
A Pen by Tiffany Rayside on CodePen.
| <div id="hour" class="box"></div> | |
| <div id="minute" class="box"></div> | |
| <div id="second" class="box"></div> | |
| <div class="boxd"> | |
| <div id = "h"></div> | |
| <div id = "m"></div> | |
| <div id = "s"></div> | |
| <div id = "ampm" ></div> | |
| </div> | |
| window.onload = function(){ | |
| t(); | |
| }; | |
| var $ = function(id) { | |
| return document.getElementById(id); | |
| }; | |
| var t = function() { | |
| var d = new Date, | |
| s = d.getSeconds() + d.getMilliseconds() / 1000, | |
| m = d.getMinutes() + s / 60, | |
| h = d.getHours() + (m / 60 ); | |
| $('hour').style.color = col(h / 24); | |
| $('hour').innerHTML = 'H:' + num0(h); | |
| $('minute').style.color = col(m / 60); | |
| $('minute').innerHTML = 'M:' + num0(m); | |
| $('second').style.color = col(s / 60); | |
| $('second').innerHTML = 'S:' + num0(s); | |
| var ampm = " PM "; | |
| var sh= d.getHours(); | |
| if (sh < 12){ | |
| ampm = " AM "; | |
| } | |
| if (sh == 00) { | |
| sh = 12; | |
| }else if (sh >= 13) { | |
| sh -= 12; | |
| } | |
| $('h').style.color = col(h / 24); | |
| $('h').innerHTML = sh + ' :'; | |
| $('m').style.color = col(m / 60); | |
| $('m').innerHTML = num00(d.getMinutes()) + ' :'; | |
| $('s').style.color = col(s / 60); | |
| $('s').innerHTML = num00(d.getSeconds()); | |
| $('ampm').style.color = col(d.getDate() / h) + ' '; | |
| $('ampm').innerHTML = ampm; | |
| setTimeout("t()", 1000); | |
| } | |
| var num0 = function(num) { | |
| if(num < 2) return "00000" + num.toString(2); | |
| else if(num < 4) return "0000" + num.toString(2); | |
| else if(num < 8) return "000" + num.toString(2); | |
| else if(num < 16) return "00" + num.toString(2); | |
| else if(num < 32) return "0" + num.toString(2); | |
| else if(num < 64) return num.toString(2); | |
| } | |
| var num00 = function(str){ | |
| var tStr = str.toString(); | |
| if( tStr.length < 2 ){ | |
| str = 0 + tStr; | |
| } | |
| return str; | |
| } | |
| var col = function(hue) { | |
| var upd = 1 - .15 * (1 - Math.sin(Math.PI * (hue + 30) / 180)), | |
| rgb = "#"; | |
| for (var i = 0; i < 3; i++) { | |
| rgb += hex(upd * conv(360 * hue - i * 120)); | |
| } | |
| return rgb; | |
| }; | |
| var conv = function(hue) { | |
| while(hue < 0) { | |
| hue += 360; | |
| } | |
| return (hue < 60) ? 1 : | |
| (hue < 120) ? (2 - hue / 60) : | |
| (hue < 240) ? 0 : | |
| (hue < 300) ? (hue / 60 - 4) : 1; | |
| } | |
| var hex = function(i) { | |
| if (i < 0) i = 0; | |
| else if (i > 1) i = 1; | |
| i = Math.round(255 * i); | |
| return ("0" + i.toString(16)).substr(-2); | |
| } | |
| body { | |
| background-color: hsla(0, 0%, 10%, 1); | |
| overflow: hidden; | |
| width: 100%; | |
| font-family: Monospace; | |
| text-shadow: -1px 2px hsla(0,0%,0%,.1), -3px 4px hsla(0,0%,0%,.1), 5px -6px hsla(0,0%,0%,.1); | |
| } | |
| .boxd{ | |
| font-size: 7vh; | |
| width:100%; | |
| text-align:center; | |
| } | |
| #h, #m, #s, #ampm{ | |
| display:inline; | |
| } | |
| .box{ | |
| display: -webkit-box; | |
| display: -moz-box; | |
| display: -ms-flexbox; | |
| display: -webkit-flex; | |
| display: flex; | |
| align-items: flex-start; | |
| padding: .88em 0; | |
| font-size: 10vh; | |
| } | |