JSFiddle - React, Tailwind, and code Playground

by Raphael Quintao

HTML

<div class="wrapper">
  <header class="header">Header</header>
  <article class="main">
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est.
      Mauris placerat eleifend leo.</p>
  </article>
  <aside class="aside aside-1">Aside 1</aside>
  <aside class="aside aside-2">Aside 2</aside>
  <footer class="footer">Footer</footer>
</div>

SCSS

@function shade($c, $p) {
  @return scale-color($c, $lightness: ($p - 1) * 100% );
}

$f: #B2B9BF;
$c: #434F5B;

html, body {
  height:100%;
  margin:0;
  padding:0;
  background: shade(black, 1.15);
  color:$f;
  /* border-bottom: 15px solid shade($c, 0.5); */
  box-sizing:border-box;
}

body {
  /* background:shade(black, 1.1); */
  /* border-bottom: 15px solid shade(red, 0.5); */
  padding:15px;
}

.wrapper {
  display: flex;  
  flex-flow: row wrap;
  font-weight: bold;
  text-align: center;
  margin-top:0;
}

.wrapper > * {
  padding: 2px;
  flex: 1 100%;
}

.main {
  text-align: left;
  background: shade($c, 1.0);
  color: shade($f, 0.8);
}

.header, .footer {
  background: shade($c, 0.7);
}

.footer {
  /* background: shade($c, 0.7); */
}

.aside {
  background:shade($c, 0.5);
}


.aside-1 {
  /* background: gold; */
}

.aside-2 {
  /* background: hotpink; */
}

@media all and (min-width: 200px) {
  /* .aside { flex: 1 0 0; } */
}

@media all and (min-width: 100px) {
  .main    { flex: 3 0px; }
  .aside   { flex: 1 0 0; }
  .aside-1 { order: 1; } 
  .main    { order: 2; }
  .aside-2 { order: 3; }
  .footer  { order: 4; }
}