Skip to content

Commit d291562

Browse files
committed
Many styling changes
1 parent 47bb1c4 commit d291562

File tree

5 files changed

+65
-35
lines changed

5 files changed

+65
-35
lines changed

client/index.html

+3
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@
100100
}, DURATION_LAGOM)
101101

102102
window.onresize = resize;
103+
104+
//make fullscreen on mobile
105+
window.scrollTo(0,1);
103106
})
104107

105108
</script>

client/init.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,22 @@
2727
.append("svg")
2828
.selectAll(".column")
2929
.data(weatherColumns)
30-
.enter().append("g")
30+
.enter().append("svg")
3131
.attr("class","column")
3232
.each(function(departure,index){
3333
var weatherOne = d3.select(this);
3434
weatherOne.append("circle").attr("class","sun");
35+
weatherOne.append("g").attr("class","curtains");
36+
weatherOne.append("rect").attr("class","grid");
37+
weatherOne.append("rect").attr("class","grid bottom");
3538
weatherOne.append("rect").attr("class","rain");
3639
weatherOne.append("rect").attr("class","wind");
37-
weatherOne.append("text").attr("class","sun");
40+
weatherOne.append("text").attr("class","temp shadow");
3841
weatherOne.append("text").attr("class","temp");
3942
weatherOne.append("text").attr("class","rain");
43+
weatherOne.append("text").attr("class","wind shadow");
4044
weatherOne.append("text").attr("class","wind");
41-
weatherOne.append("line").attr("class","grid");
42-
weatherOne.append("text").attr("class","grid").text(index==0?"NOW":index+config.weather.unitShort);
45+
weatherOne.append("text").attr("class","grid").text(index==0?"now":(index==1?1+config.weather.unitShort:index));
4346

4447
})
4548
}

client/resize.js

+30-12
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33

44
function resize(){
55
DEPARTURES_AXIS_HEIGHT = window.innerHeight*0.05;//px
6-
WEATHER_AXIS_HEIGHT = 20;//px
6+
WEATHER_AXIS_HEIGHT = window.innerHeight*0.05;//px
77
DEPARTURES_WIDTH_GRAPH = 1; //fraction
88
WIDTH = window.innerWidth;
99
WEATHER_HEIGHT = parseInt(d3.select("#weather").style("height")) - WEATHER_AXIS_HEIGHT;
1010
DEPARTURES_ROW_HEIGHT = (parseInt(d3.select("#departures").style("height")) - DEPARTURES_AXIS_HEIGHT) / config.departures.length;
1111
WEATHER_WIDTH_ONE = WIDTH/config.weather.steps;
12+
WEATHER_CURTAIN_HEIGHT = 8; //px
1213

1314
TEXTHEIGHT_LAGOM = Math.min(24, Math.max(6, DEPARTURES_ROW_HEIGHT - 8));
1415
TEXTHEIGHT_SMALL = Math.min(18, Math.max(4, DEPARTURES_ROW_HEIGHT - 20));
@@ -74,34 +75,51 @@
7475

7576
})
7677
d3.select("#weather").select("svg").selectAll(".column")
77-
.attr("transform",function(d,i){return "translate("+(i* WEATHER_WIDTH_ONE)+",0)"})
78+
.attr("width",WEATHER_WIDTH_ONE)
79+
.attr("height",WEATHER_HEIGHT+WEATHER_AXIS_HEIGHT)
80+
.attr("x",function(d,i){return i* WEATHER_WIDTH_ONE})
7881
.each(function(departure,index){
7982
var weatherOne = d3.select(this);
8083

8184
weatherOne.select("circle.sun")
85+
.attr("r", WEATHER_WIDTH_ONE/2*0.8)
8286
.attr("cx", WEATHER_WIDTH_ONE/2);
87+
88+
var curtainsData = new Array(Math.floor(WEATHER_WIDTH_ONE/WEATHER_CURTAIN_HEIGHT));
89+
var curtains = weatherOne.select("g.curtains").selectAll("rect").data(curtainsData);
90+
curtains.exit().remove();
91+
curtains.enter().append("rect");
92+
curtains.attr("width", WEATHER_WIDTH_ONE);
93+
8394
weatherOne.select("rect.rain")
8495
.attr("width", WEATHER_WIDTH_ONE/2)
8596
.attr("x", WEATHER_WIDTH_ONE/4);
8697
weatherOne.select("rect.wind")
87-
.attr("x", WEATHER_WIDTH_ONE/2-WEATHER_WIDTH_ONE/6/2)
88-
.attr("width", WEATHER_WIDTH_ONE/6);
98+
.attr("x", WEATHER_WIDTH_ONE-WEATHER_WIDTH_ONE/8)
99+
.attr("width", WEATHER_WIDTH_ONE/8);
89100

90-
weatherOne.select("text.sun")
91-
.attr("x", WEATHER_WIDTH_ONE/2);
92101
weatherOne.select("text.rain")
93102
.attr("x", WEATHER_WIDTH_ONE/2);
94-
weatherOne.select("text.wind")
95-
.attr("x", WEATHER_WIDTH_ONE/2)
96-
.attr("dy", "-0.32em");
97-
weatherOne.select("text.temp")
103+
weatherOne.selectAll("text.wind")
104+
.attr("x", WEATHER_WIDTH_ONE)
105+
.attr("dy", "-0.18em")
106+
.attr("dx", "-0.72em");
107+
weatherOne.selectAll("text.temp")
98108
.attr("x", WEATHER_WIDTH_ONE/2)
99109
.attr("dy", "0.32em");
100110

101111

102112

103-
weatherOne.select("line.grid")
104-
.attr("y2",WEATHER_HEIGHT)
113+
weatherOne.select("rect.grid")
114+
.attr("y",0)
115+
.attr("x",WEATHER_WIDTH_ONE-1)
116+
.attr("height",WEATHER_HEIGHT)
117+
.attr("width",1)
118+
weatherOne.select("rect.grid.bottom")
119+
.attr("y",WEATHER_HEIGHT)
120+
.attr("x",0)
121+
.attr("height",1)
122+
.attr("width",WEATHER_WIDTH_ONE)
105123
weatherOne.select("text.grid")
106124
.attr("x", WEATHER_WIDTH_ONE/2)
107125
.attr("y",WEATHER_HEIGHT + WEATHER_AXIS_HEIGHT);

client/style.css

+9-5
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ body, head{height: 100%; width: 100%;}
99
#departures{height: 55%; width: 100%; top: 0%}
1010
#weather{height: 45%; width: 100%; top: 55%}
1111

12+
1213
#title{font-size: 24px; line-height: 100%; text-transform: uppercase; color: #a3a3a3}
1314

1415
.stay{fill:#ffccb6;}
@@ -17,15 +18,16 @@ body, head{height: 100%; width: 100%;}
1718

1819
.sun{fill:#ffcf64; opacity: 0.8;}
1920
.sun.moon{fill:#bec9d1; opacity: 0.8;}
21+
.curtains rect{fill: white; opacity:0.9}
2022
.rain{fill:#0027a8; opacity: 0.8;}
21-
.wind{fill:#bee9ff; opacity: 0.8;}
23+
.wind{fill:#91cfef; opacity: 1.0; text-anchor: end;}
2224
.temp{fill:#5a4f35; opacity: 0.8;}
25+
text.shadow{stroke: white; stroke-width: 3}
2326

24-
text.sun{visibility: hidden};
27+
text.sun{visibility: hidden}
2528

2629

27-
line.grid{stroke-width: 1; stroke: #dbdbdb;}
28-
text.grid{ fill: #dbdbdb;}
30+
rect.grid{fill: #91cfef; stroke: none}
2931

3032
.invisible{opacity: 0;}
3133
.bus{
@@ -41,4 +43,6 @@ rect.bus{fill: #a2009c; opacity: 0.7}
4143
fill: none;
4244
stroke: grey;
4345
shape-rendering: crispEdges;
44-
}
46+
}
47+
48+
.axis text, text.grid{fill: grey}

client/update.js

+16-14
Original file line numberDiff line numberDiff line change
@@ -60,31 +60,33 @@
6060

6161
weatherOne.select("circle.sun")
6262
.classed("moon", !dataWeather.day)
63-
.transition().duration(DURATION_LAGOM).ease("linear")
64-
.attr("r", Math.abs(sunScale(dataWeather.sun)) || 1)
63+
//.attr("r", Math.abs(sunScale(dataWeather.sun)) || 1)
64+
.transition().duration(DURATION_LAGOM)
6565
.attr("cy", tempScale(dataWeather.temp))
66+
weatherOne.select("g.curtains")
67+
.selectAll("rect")
68+
.attr("transform", "rotate(45)")
69+
.attr("y", function(d,i){return i*WEATHER_CURTAIN_HEIGHT + WEATHER_CURTAIN_HEIGHT/2})
70+
.attr("height", WEATHER_CURTAIN_HEIGHT * (1-dataWeather.sun))
71+
weatherOne.select("g.curtains")
72+
.transition().duration(DURATION_LAGOM)
73+
.attr("transform", "translate("+WEATHER_WIDTH_ONE/2+","+ (tempScale(dataWeather.temp) - WEATHER_WIDTH_ONE/1.5) +")")
6674
weatherOne.select("rect.rain")
67-
.transition().duration(DURATION_LAGOM).ease("linear")
6875
.attr("height", rainScale(dataWeather.rain))
6976
weatherOne.select("rect.wind")
70-
.transition().duration(DURATION_LAGOM).ease("linear")
7177
.attr("height", windScale(dataWeather.windspeed))
7278
.attr("y", WEATHER_HEIGHT - windScale(dataWeather.windspeed))
7379

74-
weatherOne.select("text.sun")
75-
.transition().duration(DURATION_LAGOM).ease("linear")
76-
.text(dataWeather.sun)
77-
weatherOne.select("text.temp")
80+
weatherOne.selectAll("text.temp")
81+
.transition().duration(DURATION_LAGOM)
7882
.attr("y", tempScale(dataWeather.temp))
7983
.text(Math.round(dataWeather.temp) + "°C")
8084
weatherOne.select("text.rain")
81-
.transition().duration(DURATION_LAGOM).ease("linear")
8285
.attr("y", rainScale(dataWeather.rain) + 20 )
83-
.text((dataWeather.rain==0?"":dataWeather.rain) + (index==0?"mm/h":""))
84-
weatherOne.select("text.wind")
85-
.transition().duration(DURATION_LAGOM).ease("linear")
86-
.attr("y", WEATHER_HEIGHT - windScale(dataWeather.windspeed))
87-
.text(Math.round(dataWeather.windspeed) + (index==0?"m/s":""))
86+
.text(dataWeather.rain==0?"":dataWeather.rain)
87+
weatherOne.selectAll("text.wind")
88+
.attr("y", WEATHER_HEIGHT)
89+
.text(Math.round(dataWeather.windspeed)==0?"":Math.round(dataWeather.windspeed))
8890

8991
})
9092

0 commit comments

Comments
 (0)