<div class="grid">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
</div>
.grid {
  display: grid;
  grid-template-columns: 37fr 13fr 19fr 31fr;
  grid-template-rows: 1fr 1fr auto;

  max-width: 400px;
  margin: auto;
}

.item {
  min-height: 100px;
  background: green;
  border: 1px solid white;
  color: white;
  padding: 1rem;

  &:nth-child(7n + 1) { grid-row: span 2; }
  &:nth-child(7n + 2) { grid-column: span 3; }
  &:nth-child(7n + 3) { grid-column: span 2; aspect-ratio: 1 / 1; }
  &:nth-child(7n + 4) { grid-column: span 1; }
  &:nth-child(7n + 5) { grid-column: span 2; }
  &:nth-child(7n + 6) { grid-column: span 2; }
  &:nth-child(7n + 7) { grid-column: span 4; }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.