JSFiddle - React, Tailwind, and code Playground

by Abdul Ahmad

HTML

<div class='content'>
  <div class='title'></div>
  
  
  <div class='container'>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
  </div>
  <div class='border'></div>
  
  <div class='container centered'>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
  </div>
  <div class='border'></div>
  
  
  <div class='container flex'>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
    <div class='box'>
      <div class='shadow'></div>
    </div>
  </div>
  <div class='border'></div>
  
</div>

SCSS

html, body {
  margin: 0;
  height: 100%;
  overflow: hidden;
}
body {
  overflow-y: auto;
}

.content {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  height: 100%;
}
.content .container {
  width: calc(100% + 20px);
  margin-left: -8px;
  padding: 30px 0 10px 0;
}

.container {
  .box {
    display: inline-block;
    margin: 8px 8px;
    background-color: white;
    width: calc(25% - 20px);
    width: 200px;
    height: 200px;
    position: relative;
  }
  
  &.flex {
   
     display: flex;
     flex-wrap: wrap;
     justify-content: space-between;
     
    .box {
      margin: 8px;
      width: 200px;
      height: 200px;
    }
  }
  
  &.centered {
    text-align: center;
  }
}

.border {
  height: 1px;
  background-color: #ddd;
}

.title {
  height: 10px;
  background-color: teal;
  margin: 8px 0;
}
.shadow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.4;
  box-shadow: 0 1px 2px 0 black;
}

/* @media all and (max-width: 1050px) {
  .container .box {
    width: calc(33.3% - 20px);
  }
}

@media all and (max-width: 800px) {
  .container .box {
    width: calc(50% - 20px);
  }
}

@media all and (max-width: 500px) {
  
  .content .container {
    width: 100%;
    margin: 0;
  }
  .container .box {
    width: 100%;
    margin: 8px 0;
  }
} */