JSFiddle - React, Tailwind, and code Playground

by Abdul Ahmad

HTML

<div class='app'>
  <div class='primary-menu'>
    <div class='primary-menu-logo'>
      ICANotes
    </div>
    <div>
      <div class='primary-menu-item'>
        <div class='text'>
          Dashboard
        </div>
        <div class='primary-menu__submenu'>
          <div class='primary-menu-item'>
            <div class='text'>
              Personal
            </div>
          </div>
          <div class='primary-menu-item'>
            <div class='text'>
              Practice
            </div>
          </div>
        </div>
      </div>
      <div class='primary-menu-item'>
        <div class='text'>
          Calendar
        </div>
      </div>
      <div class='primary-menu-item'>
        <div class='text'>
          Charts
        </div>
      </div>
      <div class='primary-menu-item'>
        <div class='text'>
          Messages
        </div>
      </div>
      <div class='primary-menu-item'>
        <div class='text'>
          Contacts
        </div>
      </div>
      <div class='primary-menu-item'>
        <div class='text'>
          Billing
        </div>
      </div>
    </div>
  </div>
  <div class='dashboard'>
    <header class='dashboard-header'>
      
    </header>
    <div class='dashboard-widget'>
    
    </div>
  </div>
</div>

SCSS

$yellow: #a3a98e;
$background: #f0f3f5;
$backgroundDark: darken($background, 5%);
$primary: #104d6a;
$primaryDark: darken($primary, 5%);
$primaryDarker: darken($primary, 10%);

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  font-family: "Lucida Grande", Helvetica, Arial, sans-serif;
}

.app {
  background: $background;
  height: 100%;
  display: flex;
}

.primary-menu {
  width: 300px;
  height: 100%;
  background: linear-gradient($primary, $primaryDark);
  flex-grow: 0;
  flex-shrink: 0;
  // box-shadow: 5px 0 30px 0 rgba(0, 0, 0, 0.1);
}

.primary-menu__submenu {
  background: lighten($primaryDark, 1%);
  
  .primary-menu-item {
 
    .text {
      padding-left: 30px;
      
      &:hover {
        background: darken($primaryDark, 1%);
      }
    }
  }
}

.primary-menu-item {
  color: white;
  width: 100%;
  box-sizing: border-box;
  
  .text {
    padding: 15px 20px;
    
    &:hover {
      cursor: pointer;
      background: $primaryDark;
    }
  }
}

.primary-menu-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 70px;
  font-size: 20px;
  font-weight: bold;
  border-bottom: 1px solid $primaryDarker;
  color: white;
}


// dashboard
.dashboard {
  flex-grow: 1;
  flex-shrink: 1;
}

.dashboard-header {
  height: 70px;
  background: white;
  border-bottom: 1px solid $backgroundDark;
}

.dashboard-widget {
  width: 300px;
  height: 300px;
  background: white;
  margin: 20px;
  border-radius: 10px;
  border: 1px solid $backgroundDark;
}