builder layout

by Tyler Brown

HTML

<div class="row row-arrows">
  <div class="box">
    <div class="arrow"></div>
  </div>
  <div class="box">
    <div class="arrow"></div>
  </div>
  <div class="box">
    <div class="arrow"></div>
  </div>
  <div class="box">
    <div class="arrow"></div>
  </div>
</div>

<div class="row row-card">
  <div class="box">
    <div class="card">card a</div>
  </div>
  <div class="box">
    <div class="card">card b</div>
  </div>
  <div class="box">
    <div class="card">card c</div>
  </div>
  <div class="box">
    <div class="card">card c</div>
  </div>
</div>

CSS

div {
  box-sizing: border-box;
}
.row {
  display: flex;
  flex-direction: row;
  /* border: 1px solid red; */
  justify-content: center;
}
.box {
  width: 200px;
  /* height: 50px; */
  /* margin: 10px; */
  /* border: 1px solid gray; */
}
.card {
  border: 1px solid blue;
  margin: 10px;
  height: 50px;
}
.arrow {
  /* border: 1px solid lime; */
  height: 50px;
  position: relative;
}
.arrow::before, .arrow::after {
  display: block;
  content: '';
  position: absolute;
}
.arrow::after {
  top: 0;
  left: 50%;
  height: 100%;
  width: 0;
  border-right: 1px solid red;
}
.arrow::before {
  top: 0;
  left: 0;
  height: 0;
  width: 100%;
  border-top: 1px solid red;
}
.box:first-child .arrow::before {
  left: 50%;
  width: 50%;
}
.box:last-child .arrow::before {
  width: 50%;
}