Energy Efficiency Label

by Daniel Cheung

HTML

<div class="efficiency" style="width: 400px; height: 400px">
  <div class="bar a"><img class="arrow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="><div class="text">A</div></div>
  <div class="bar b"><img class="arrow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="><div class="text">B</div></div>
  <div class="bar c"><img class="arrow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="><div class="text">C</div></div>
  <div class="bar d"><img class="arrow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="><div class="text">D</div></div>
  <div class="bar e"><img class="arrow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="><div class="text">E</div></div>
  <div class="bar f"><img class="arrow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="><div class="text">F</div></div>
  <div class="bar g"><img class="arrow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="><div class="text">G</div></div>
</div>

CSS

* { box-sizing: border-box; }

body {
  font-family: Arial, sans-serif;
}

.efficiency {
  border: 1px solid black;
}

.bar {
  display: flex;
  flex-direction: row;
  align-items: center;
  color: white;
  height: calc(100% / 7 - 5px);
  background: #3b7634;
  margin-bottom: 5px; /* gap */
  position: relative;
  z-index: 0;
}

.bar > .text {
  display: flex;
  flex-direction: row;
  align-items: center;
  height: 100%;
  width: 100%;
/*   border: 2px solid black;
  border-right: none; */
  z-index: 1;
  padding-left: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
}

.a { width: 15%; background-color: #00A851 }
.b { width: 22%; background-color: #4FB947 }
.c { width: 29%; background-color: #C1D82D }
.d { width: 36%; background-color: #FEF200 }
.e { width: 43%; background-color: #FCBA0B }
.f { width: 50%; background-color: #F3711A }
.g { width: 57%; background-color: #EE141F }

.arrow {
  height: calc(100% / 1.41421356237); /* square root 2 */
  transform: translateX(-50%) rotate(45deg);
  position: absolute;
  left: 100%;
  user-select: none;
  background-color: inherit;
  /* box-shadow: inset -2px 2px black; */
}