|
@import url(https://fonts.googleapis.com/css?family=Lato:700); |
|
|
|
.size(@w, @h) { |
|
height: @h; |
|
width: @w; |
|
} |
|
|
|
// -- |
|
*, |
|
*:before, |
|
*:after { |
|
box-sizing: border-box; |
|
} |
|
|
|
html, |
|
body { |
|
background: #ecf0f1; |
|
color: #444; |
|
font-family: 'Lato', Tahoma, Geneva, sans-serif; |
|
font-size: 16px; |
|
padding: 10px; |
|
} |
|
|
|
.set-size { |
|
font-size: 10em; |
|
} |
|
|
|
.charts-container:after { |
|
clear: both; |
|
content: ""; |
|
display: table; |
|
} |
|
|
|
@bg: #34495e; |
|
@size: 1em; |
|
|
|
.pie-wrapper { |
|
.size(@size, @size); |
|
float: left; |
|
margin: 15px; |
|
position: relative; |
|
|
|
&:nth-child(3n+1) { |
|
clear: both; |
|
} |
|
|
|
.pie { |
|
.size(100%, 100%); |
|
clip: rect(0, @size, @size, @size / 2); |
|
left: 0; |
|
position: absolute; |
|
top: 0; |
|
|
|
.half-circle { |
|
.size(100%, 100%); |
|
border: @size / 10 solid #3498db; |
|
border-radius: 50%; |
|
clip: rect(0, @size / 2, @size, 0); |
|
left: 0; |
|
position: absolute; |
|
top: 0; |
|
} |
|
} |
|
|
|
.label { |
|
@font-size: @size / 4; |
|
@font-size-redo: @size * 4; |
|
|
|
background: @bg; |
|
border-radius: 50%; |
|
bottom: @font-size-redo / 10; |
|
color: #ecf0f1; |
|
cursor: default; |
|
display: block; |
|
font-size: @font-size; |
|
left: @font-size-redo / 10; |
|
line-height: @font-size-redo * .65; |
|
position: absolute; |
|
right: @font-size-redo / 10; |
|
text-align: center; |
|
top: @font-size-redo / 10; |
|
|
|
.smaller { |
|
color: #bdc3c7; |
|
font-size: .45em; |
|
padding-bottom: 20px; |
|
vertical-align: super; |
|
} |
|
} |
|
|
|
.shadow { |
|
.size(100%, 100%); |
|
border: @size / 10 solid #bdc3c7; |
|
border-radius: 50%; |
|
} |
|
|
|
&.style-2 { |
|
.label { |
|
background: none; |
|
color: #7f8c8d; |
|
|
|
.smaller { |
|
color: #bdc3c7; |
|
} |
|
} |
|
} |
|
|
|
&.progress-30 { |
|
.draw-progress(30, #3498db); |
|
} |
|
|
|
&.progress-60 { |
|
.draw-progress(60, #9b59b6); |
|
} |
|
|
|
&.progress-90 { |
|
.draw-progress(90, #e67e22); |
|
} |
|
|
|
&.progress-45 { |
|
.draw-progress(45, #1abc9c); |
|
} |
|
|
|
&.progress-75 { |
|
.draw-progress(75, #8e44ad); |
|
} |
|
|
|
&.progress-95 { |
|
.draw-progress(95, #e74c3c); |
|
} |
|
} |
|
|
|
.pie-wrapper--solid { |
|
border-radius: 50%; |
|
overflow: hidden; |
|
|
|
&:before { |
|
border-radius: 0 100% 100% 0 / 50%; |
|
content: ''; |
|
display: block; |
|
height: 100%; |
|
margin-left: 50%; |
|
transform-origin: left; |
|
} |
|
|
|
.label { |
|
background: transparent; |
|
} |
|
|
|
&.progress-65 { |
|
.draw-progress--solid(65, #e67e22, @bg); |
|
} |
|
|
|
&.progress-25 { |
|
.draw-progress--solid(25, #9b59b6, @bg); |
|
} |
|
|
|
&.progress-88 { |
|
.draw-progress--solid(88, #3498db, @bg); |
|
} |
|
} |
|
|
|
// -- |
|
.draw-progress(@progress, @color) when (@progress <= 50) { |
|
.pie { |
|
.right-side { |
|
display: none; |
|
} |
|
} |
|
} |
|
|
|
.draw-progress(@progress, @color) when (@progress > 50) { |
|
.pie { |
|
clip: rect(auto, auto, auto, auto); |
|
|
|
.right-side { |
|
transform: rotate(180deg); |
|
} |
|
} |
|
} |
|
|
|
.draw-progress(@progress, @color) { |
|
.pie { |
|
.half-circle { |
|
border-color: @color; |
|
} |
|
|
|
.left-side { |
|
@rotate: @progress * 3.6; |
|
transform: rotate(~'@{rotate}deg'); |
|
} |
|
} |
|
} |
|
|
|
.draw-progress--solid(@progress, @color, @bg) when (@progress <= 50) { |
|
&:before { |
|
background: @bg; |
|
transform: rotate((100 - (50 - @progress)) / 100 * 360deg * -1); |
|
} |
|
} |
|
|
|
.draw-progress--solid(@progress, @color, @bg) when (@progress > 50) { |
|
&:before { |
|
background: @color; |
|
transform: rotate((100 - @progress) / 100 * 360deg); |
|
} |
|
} |
|
|
|
.draw-progress--solid(@progress, @color, @bg) { |
|
background: linear-gradient(to right, @color 50%, @bg 50%); |
|
} |