JSFiddle - React, Tailwind, and code Playground

HTML

<div class="grid-wrapper">
    <div class="box a">A</div>
    <div class="box b">B</div>
    <div class="box c">C</div>
    <div class="box d">D</div>
    <div class="box e">E</div>
    <div class="box f">F</div>
    <div class="box g">G</div>
    <div class="box h">H</div>
</div>

CSS

.grid-wrapper {
  display: inline-grid;
  grid-template-columns: repeat(5, 50px);
  grid-template-rows: repeat(3, 50px);
  grid-auto-rows: 50px;
  grid-auto-columns: 50px;
  grid-gap: 10px;
  padding: 10px;
  border: 1px solid black;
}

.grid-wrapper:hover {
  grid-auto-flow: dense;
}

.a, .h {
  grid-column-end: span 2;
}

.b, .e {
  grid-row-end: span 2;
}

.f {
  grid-row-end: span 2;
  grid-column-end: span 2;
}

.box {
  background-color: lightgreen;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.grid-wrapper:hover .g,
.grid-wrapper:hover .h {
  background-color: orange;
}