timetable by HAP

by Petr Haluza

HTML

<div class="timetable">
  <div class="week-names">
    <div>monday</div>
    <div>tuesday</div>
    <div>wednesday</div>
    <div>thursday</div>
    <div>friday</div>
    <div class="weekend">saturday</div>
    <div class="weekend">sunday</div>
  </div>
  <div class="time-interval">
    <div>8:00 - 10:00</div>
    <div>10:00 - 12:00</div>
    <div>12:00 - 14:00</div>
    <div>14:00 - 16:00</div>
    <div>16:00 - 18:00</div>
    <div>18:00 - 20:00</div>
  </div>
  <div class="content">
    <div>
      <div class="accent-orange-gradient"></div>
    </div>
    <div></div>
    <div></div>
    <div></div>
        <div>
      <div class="accent-green-gradient"></div>
    </div>
    <div class="weekend"></div>
    <div class="weekend"></div>
    <div></div>
    <div></div>
    <div></div>
    <div>
      <div class="accent-cyan-gradient"></div>
    </div>
    <div></div>
    <div class="weekend"></div>
    <div class="weekend"></div>
    <div>
      <div class="accent-pink-gradient"></div>
    </div>
    <div></div>
    <div>
      <div class="accent-purple-gradient"></div>
    </div>
    <div></div>
    <div></div>
    <div class="weekend"></div>
    <div class="weekend"></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div class="weekend"></div>
    <div class="weekend"></div>
    <div>
      <div class="accent-purple-gradient"></div>
    </div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div class="weekend"></div>
    <div class="weekend"></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div class="weekend"></div>
    <div class="weekend"></div>
  </div>
</div>

CSS

html, body {
  margin: 0;
  font-family: "Karla";
  color: #546E7A;
}

* {
  box-sizing: border-box;
}

.timetable {
  display: grid;
  grid-template-areas: ". week" "time content";
  grid-template-columns: 120px;
  grid-template-rows: 60px;
  width: 100vw;
  height: 100vh;
}
.timetable .accent-pink-gradient {
  display: flex;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #ee8ebc, #eea08e);
  transition: 0.2s ease box-shadow, 0.2s ease transform;
}
.timetable .accent-pink-gradient:hover {
  box-shadow: 0 20px 30px 0 rgba(238, 142, 188, 0.3);
  transform: scale(1.05);
}
.timetable .accent-orange-gradient {
  display: flex;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #eec08e, #dcee8e);
  transition: 0.2s ease box-shadow, 0.2s ease transform;
}
.timetable .accent-orange-gradient:hover {
  box-shadow: 0 20px 30px 0 rgba(238, 192, 142, 0.3);
  transform: scale(1.05);
}
.timetable .accent-green-gradient {
  display: flex;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #bcee8e, #8eeea0);
  transition: 0.2s ease box-shadow, 0.2s ease transform;
}
.timetable .accent-green-gradient:hover {
  box-shadow: 0 20px 30px 0 rgba(188, 238, 142, 0.3);
  transform: scale(1.05);
}
.timetable .accent-cyan-gradient {
  display: flex;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #8eeec0, #8edcee);
  transition: 0.2s ease box-shadow, 0.2s ease transform;
}
.timetable .accent-cyan-gradient:hover {
  box-shadow: 0 20px 30px 0 rgba(142, 238, 192, 0.3);
  transform: scale(1.05);
}
.timetable .accent-blue-gradient {
  display: flex;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #8ebcee, #a08eee);
  transition: 0.2s ease box-shadow, 0.2s ease transform;
}
.timetable .accent-blue-gradient:hover {
  box-shadow: 0 20px 30px 0 rgba(142, 188, 238, 0.3);
  transform: scale(1.05);
}
.timetable .accent-purple-gradient {
  display: flex;
  width: 100%;
  height: 100%;
  background:...