JSFiddle - React, Tailwind, and code Playground

by gweax

HTML

<div class="container">
  <div class="col flex-1">1</div>
  <div class="col flex-1">1</div>
  <div class="col flex-1">1</div>
  <div class="col flex-1">1</div>
</div>

<div class="container">
  <div class="col flex-1">1</div>
  <div class="col flex-3">3</div>
</div>

<div class="container">
  <div class="col flex-1">2</div>
  <div class="col flex-1">2</div>
</div>

<div class="container offset offset-1">
  <div class="col flex-3">3</div>
</div>

<div class="container offset offset-2">
  <div class="col flex-2">2</div>
</div>

<div class="container offset offset-3">
  <div class="col flex-1">1</div>
</div>

<div class="container">
  <div class="col flex-1">1</div>
  <div class="container flex-3">
    <div class="col flex-1">1</div>
    <div class="container flex-2">
      <div class="col flex-1">1</div>
      <div class="col flex-1">1</div>
    </div>
  </div>
</div>

CSS

* {
  box-sizing: border-box;
}

.container {
  display: flex;
  margin-bottom: 20px;
  background-color: #ccc;
  max-width: 400px;
}

.container .container {
  margin-bottom: 0;
}

.col {
  background: #bada55;
  height: 40px;
  margin-right: 10px;
}

.col:last-child {
  margin-right: 0;
}

.flex-1 { flex: 1 0 0; }
.flex-2 { flex: 2 0 10px; }
.flex-3 { flex: 3 0 20px; }
.flex-4 { flex: 4 0 30px; }

.offset::before {
  content: 'o';
  height: 40px;
  margin-right: 10px;
}

.offset-1::before { flex: 1 0 0; }
.offset-2::before { flex: 2 0 10px; }
.offset-3::before { flex: 3 0 20px; }