JSFiddle - React, Tailwind, and code Playground
HTML
<div class="boxes">
<div class="box b1">1</div>
<div class="box b2">2</div>
<div class="box b3">3</div>
<div class="box b4">4</div>
<div class="box b5">5</div>
<div class="box b6">6</div>
<div class="box b7">7</div>
</div>
CSS
.boxes {
display: grid;
grid-template-columns: 3fr 1fr;
grid-auto-rows: 10px;
grid-gap: 5px;
grid-template-areas:
" red yellow"
" red yellow"
" red yellow"
" red yellow"
" red yellow"
" red yellow"
" red purple"
" red purple"
" red purple"
" red purple"
" red purple"
" red cyan"
" red cyan"
" red cyan"
" red cyan"
" green cyan"
" green orange "
" green orange "
" green orange "
" green orange "
" green orange "
" green . "
" green . "
" green . "
" blue . "
" blue . "
" blue . "
" blue . "
" blue . "
" blue . "
" blue . "
" blue . "
}
.b1 { grid-area: red; background-color: red; }
.b2 { grid-area: green; background-color: green; }
.b3 { grid-area: blue; background-color: blue; }
.b4 { grid-area: yellow; background-color: yellow; }
.b5 { grid-area: purple; background-color: purple; }
.b6 { grid-area: cyan; background-color: cyan; }
.b7 { grid-area: orange; background-color: orange; }
.box {
padding: 1em;
border: 1px solid black;
}
@media (max-width: 570px) {
.boxes { grid-template-columns: 1fr;
grid-template-areas:
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" red "
" yellow "
" yellow "
" yellow "
" yellow "
" yellow "
" yellow "
" green "
" green "
" green "
" green "
" green "
" green "
" green "
" green "
" green "
" purple "
" purple "
" purple "
" purple "
" purple "
" blue "
" blue "
" blue "
" blue "
" blue "
" blue "
" blue "
" blue "
" cyan "
" cyan "
" cyan "
" cyan "
" cyan "
" orange "
" orange "
" orange "
" orange "
" orange " ;}
}