JSFiddle - React, Tailwind, and code Playground
by Ed Bulikyan
HTML
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
SCSS
body {
padding: 0;
margin: 0;
}
.container {
display: flex;
flex-wrap: wrap;
align-items: stretch;
justify-content: center;
flex-direction: row;
height: 100vh;
font-size: 0;
/* if last element is not centrilized */
&:after {
content: '';
display: block;
flex: 1 1 auto;
}
}
.item {
flex: 0 0 25%;
background-color: #f00;
border: 1px solid lime;
box-sizing: border-box;
@media (min-aspect-ratio: 8/5) {
flex: 0 0 25%;
}
@media (max-aspect-ratio: 3/2) {
flex: 0 0 33.3333333333%;
}
@media (aspect-ratio: 1/1) {
flex: 0 0 50%;
}
}