CSS grid layout - Isotope

by Matt Howey

HTML

<div class="container">
  <div class="container-item container-item-1">1</div>
  <div class="container-item container-item-2">2</div>
  <div class="container-item container-item-3">3</div>
  <div class="container-item container-item-4">4</div>
  <div class="container-item container-item-5">5</div>
  <div class="container-item container-item-6">6</div>
</div>

CSS

body {
  margin: 0;
  padding: 0;
  font-family: arial;
}

.container {
  width: 90vw;
  height: 100vh;
  margin: 20px auto;
  
  /* grid styles */
  display: grid;
  grid-template-columns: auto auto auto;
  grid-template-rows: 100px 150px 50px 80px;
  grid-row-gap: 8px;
  grid-column-gap: 8px;
}

.container-item {
  color: #fff;
  text-align: center;
}

.container-item-1 {
  background-color: #C91B18;
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 4;
}

.container-item-2 {
  background-color: #009036;
  grid-column: 2 / span 1;
  grid-row: 1 / span 2;
}

.container-item-3 {
  background-color: #772164;
  grid-column-start: 3;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 1;
}

.container-item-4 {
  background-color: #009036;
  grid-column-start: 3;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 2;
}

.container-item-5 {
  background-color: #772164;
  grid-column-start: 1;
  grid-column-end: 4;
  grid-row-start: 4;
  grid-row-end: 4;
}

.container-item-6 {
  background-color: #772164;
  grid-column-start: 2;
  grid-column-end: 4;
  grid-row-start: 3;
  grid-row-end: 3;
}