JSFiddle - React, Tailwind, and code Playground
HTML
<div class="grid-wrapper">
<div class="box a">A<br>hover</div>
<div class="box b">B<br>hover</div>
<div class="box c">C<br>hover</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<br>hover</div>
</div>
CSS
.grid-wrapper {
display: inline-grid;
grid-template-columns: repeat(3, 75px);
grid-template-rows: repeat(3, 75px);
grid-auto-rows: 75px;
grid-auto-columns: 75px;
grid-gap: 10px;
padding: 10px;
border: 1px solid black;
}
.a {
grid-row: 1 / 2;
grid-column: 1 / 2;
}
.a:hover {
grid-column: 1 / 4;
background-color: orange;
}
.b:hover {
grid-row: 1 / 4;
grid-column: 1 / 3;
background-color: aqua;
}
.c:hover ~ .box {
grid-column: 1 / 4;
background-color: pink;
}
.h:hover {
grid-column-end: span 2;
background-color: green;
}
.box {
background-color: lightgreen;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}