<div class="app-container chat">
  <div class="sidebar-wrapper">
    <div class="sidebar">
      <div class="sidebar-content">
        <div class="sidebar-header">
          <div class="twitch-logo" onClick="toggleSidebar()">
            <svg class="tw-svg__asset tw-svg__asset--logotwitch tw-svg__asset--inherit" width="94px" height="32px" version="1.1" viewBox="0 0 94 32" x="0px" y="0px"><path clip-rule="evenodd" d="M88,5h-6V0h-9l-6,5h-5.5L59,7.5V5h-5V0H36v5H16l-5-5H0v22l5,5.25L14,32h6v-1.5l3,1.5h12l2-3l1,3h7v-3l3,3h8l0.5-3l2.5,3h10l3-3v3h4l3-3v3h7l7-6V10L88,5z M13,13H8v6h5v6H6l-4-4V2h6v5h5V13z M36,21.5L32.5,25H15V7h6v12h2V7h6v12h2V7h5V21.5z M44,25h-6V7h6V25z M44,5h-6V2h6V5z M57,13h-5v6h5v6h-7l-4-4V2h6v5h5V13z M72,13h-7v6h7v6h-9l-4-4V11l4-4h9V13z M91,25h-6V13h-5v12h-6V2h6v5h7l4,4V25z" fill-rule="evenodd"></path></svg>
          </div>
          <div class="search-bar">
            <input type="text" placeholder="Search to Add Friends" />
            <i class="material-icons">search</i>
          </div>
        </div>
        <div class="sidebar-group">
          <div class="sidebar-group-header">
            <div>Followed Channels</div>
            <a class="view-all">View All</a>
          </div>
          <a class="channel-link">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/10114ec7-b5f3-4804-b23f-8a5136462697-profile_image-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">wonpec</div>
              <div class="channel-status">
                <div>Crusader Kings II</div>
                <div>107 watching</div>
              </div>
            </div>
          </a>
          <a class="channel-link">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/32a302ff-0f2f-4de3-8a82-72a1160b843e-profile_image-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">StoneZoneGaming</div>
              <div class="channel-status">
                <div>Skyrim</div>
                <div>121 watching</div>
              </div>
            </div>
          </a>
          <a class="channel-link offline">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/2aef719f-5492-4ff0-923b-0845d9e8658f-profile_image-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">FrivviFox</div>
              <div class="channel-status">Offline</div>
            </div>
          </a>
          <a class="channel-link offline">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/atimidmouse-profile_image-4cfb21ad6a15feef-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">atimidmouse</div>
              <div class="channel-status">Offline</div>
            </div>
          </a>
          <a class="channel-link offline">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/nakeyjakeystreamerboy-profile_image-1faef87e3f1a5912-70x70.jpeg" />
            </div>
            <div class="channel-info">
              <div class="channel-name">NakeyJakeyStreamerBoy</div>
              <div class="channel-status">Offline</div>
            </div>
          </a>
          <a class="channel-link offline">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/11fc4351ff82c494-profile_image-70x70.jpeg" />
            </div>
            <div class="channel-info">
              <div class="channel-name">andersonjph</div>
              <div class="channel-status">Offline</div>
            </div>
          </a>
        </div>
        <div class="sidebar-group">
          <div class="sidebar-group-header">
            <div>Friends</div>
          </div>
          <a class="channel-link">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/10114ec7-b5f3-4804-b23f-8a5136462697-profile_image-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">wonpec</div>
              <div class="channel-status">
                <div>Crusader Kings II</div>
                <div>107 watching</div>
              </div>
            </div>
          </a>
          <a class="channel-link offline">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/atimidmouse-profile_image-4cfb21ad6a15feef-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">atimidmouse</div>
              <div class="channel-status">Offline</div>
            </div>
          </a>
        </div>
        <div class="sidebar-group">
          <div class="sidebar-group-header">
            <div>Recommended</div>
            <a class="view-all">View More</a>
          </div>
          <a class="channel-link">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/dizzykitten-profile_image-ca899752a83f72a6-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">DizzyKitten</div>
              <div class="channel-status">
                <div>Playerunknown's Battlegrounds</div>
                <div>1.2k watching</div>
              </div>
            </div>
          </a>
          <a class="channel-link">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/09dd7229-c19d-40e4-936d-a610dc97734e-profile_image-70x70.jpg" />
            </div>
            <div class="channel-info">
              <div class="channel-name">amouranth</div>
              <div class="channel-status">
                <div>IRL</div>
                <div>101 watching</div>
              </div>
            </div>
          </a>
          <a class="channel-link">
            <div class="channel-image">
              <img src="https://static-cdn.jtvnw.net/jtv_user_pictures/lethalfrag-profile_image-050adf252718823b-70x70.png" />
            </div>
            <div class="channel-info">
              <div class="channel-name">LethalFrag</div>
              <div class="channel-status">
                <div>Spelunky</div>
                <div>10k watching</div>
              </div>
            </div>
          </a>
        </div>
      </div>
    </div>
    <div class="page-overlay" onClick="toggleSidebar()"></div>
  </div>

  <div class="main-content">
    <div class="header">

      <div class="logo-wrapper">
        <i class="material-icons sidebar-toggle" onClick="toggleSidebar()" data-tooltip="Menu" data-tooltip-pos="right">sort</i>
        <div class="twitch-logo">
          <svg class="tw-svg__asset tw-svg__asset--logotwitch tw-svg__asset--inherit" width="94px" height="32px" version="1.1" viewBox="0 0 94 32" x="0px" y="0px"><path clip-rule="evenodd" d="M88,5h-6V0h-9l-6,5h-5.5L59,7.5V5h-5V0H36v5H16l-5-5H0v22l5,5.25L14,32h6v-1.5l3,1.5h12l2-3l1,3h7v-3l3,3h8l0.5-3l2.5,3h10l3-3v3h4l3-3v3h7l7-6V10L88,5z M13,13H8v6h5v6H6l-4-4V2h6v5h5V13z M36,21.5L32.5,25H15V7h6v12h2V7h6v12h2V7h5V21.5z M44,25h-6V7h6V25z M44,5h-6V2h6V5z M57,13h-5v6h5v6h-7l-4-4V2h6v5h5V13z M72,13h-7v6h7v6h-9l-4-4V11l4-4h9V13z M91,25h-6V13h-5v12h-6V2h6v5h7l4,4V25z" fill-rule="evenodd"></path></svg>
        </div>
        <div class="desktop-search search-bar">
          <input type="text" placeholder="Search" />
          <i class="material-icons">search</i>
        </div>
      </div>

      <div class="nav">
        <div class="dropdown">
          <i class="material-icons dropdown-toggle" data-tooltip="More" data-tooltip-pos="left">more_horiz</i>
          <div class="dropdown-content">
            <a class="dropdown-link">About</a>
            <a class="dropdown-link">Advertisers</a>
            <a class="dropdown-link">Blog</a>
            <a class="dropdown-link">Browse</a>
            <a class="dropdown-link">Community Guidelines</a>
            <a class="dropdown-link">Cookie Policy</a>
            <a class="dropdown-link">Creative</a>
            <a class="dropdown-link">Developers</a>
            <a class="dropdown-link">Following</a>
            <a class="dropdown-link">Get Desktop</a>
            <a class="dropdown-link">Help</a>
            <a class="dropdown-link">Jobs</a>
            <a class="dropdown-link">Language</a>
            <a class="dropdown-link">Music</a>
            <a class="dropdown-link">Store</a>
            <a class="dropdown-link">Partners</a>
            <a class="dropdown-link">Press</a>
            <a class="dropdown-link">Security</a>
            <a class="dropdown-link">Terms</a>
            <a class="dropdown-link">Try Prime</a>
          </div>
        </div>
        <div class="mobile-search dropdown">
          <i class="material-icons dropdown-toggle" data-tooltip="Search" data-tooltip-pos="left">search</i>
          <div class="dropdown-content">
            <div class="search-bar">
              <input type="text" placeholder="Search" />
              <i class="material-icons">search</i>
            </div>
          </div>
        </div>
        <div class="dropdown">
          <i class="material-icons dropdown-toggle" data-tooltip="Notifications" data-tooltip-pos="left">notifications</i>
          <div class="dropdown-content">
            <div class="dropdown-header">
              <h4>No new notifications</h4>
            </div>
          </div>
        </div>

        <div class="profile-image-wrapper dropdown">
          <div class="profile-image dropdown-toggle">
            <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/312465/profile/profile-80.jpg?1513191507" />
          </div>
          <div class="dropdown-content">
            <div class="dropdown-header">
              <div class="username">cole_waldrip</div>
              <a class="logout">Logout</a>
            </div>
            <div class="dropdown-group">
              <a class="dropdown-link active">
                <i class="material-icons">check_box</i>
                <span>Share My Activity</span>
              </a>
              <a class="dropdown-link" onClick="toggleDarkMode()">
                <i class="material-icons" id="darkMode">check_box_outline_blank</i>
                <span>Dark Mode</span>
              </a>
            </div>
            <div class="dropdown-group">
              <a class="dropdown-link">
                <i class="material-icons">account_box</i>
                <span>Channel</span>
              </a>
              <a class="dropdown-link">
                <i class="material-icons">dashboard</i>
                <span>Dashboard</span>
              </a>
              <a class="dropdown-link">
                <i class="material-icons">movie</i>
                <span>Video Producer</span>
              </a>
              <a class="dropdown-link">
                <i class="material-icons">settings</i>
                <span>Settings</span>
              </a>
            </div>
            <div class="dropdown-group">
              <a class="dropdown-link">
                <i class="material-icons">people</i>
                <span>Friends</span>
              </a>
              <a class="dropdown-link">
                <i class="material-icons">email</i>
                <span>Messages</span>
              </a>
              <a class="dropdown-link">
                <i class="material-icons">credit_card</i>
                <span>Subscriptions</span>
              </a>
              <a class="dropdown-link">
                <i class="material-icons">local_mall</i>
                <span>Inventory</span>
              </a>
            </div>
          </div>
        </div>
      </div>

    </div>

    <div class="page-content">
      <div class="channel-header">
        <div class="channel-nav">
          <a class="active">
            <img class="channel-image" src="https://static-cdn.jtvnw.net/jtv_user_pictures/10114ec7-b5f3-4804-b23f-8a5136462697-profile_image-70x70.png" />
            <span>wonpec</span>
          </a>
          <a>
            <strong>20</strong>
            <span>Videos</span>
          </a>
          <a>
            <strong>7</strong>
            <span>Clips</span>
          </a>
          <a>
            <strong>1</strong>
            <span>Collection</span>
          </a>
          <a>
            <strong>0</strong>
            <span>Events</span>
          </a>
          <a>
            <strong>69</strong>
            <span>Followers</span>
          </a>
          <a>
            <strong>10</strong>
            <span>Following</span>
          </a>
        </div>
        <div class="channel-header-fixed-buttons">
          <button class="btn">
            <i class="material-icons">favorite</i>
            <span>Follow</span>
          </button>
          <button class="btn">
            <i class="material-icons">credit_card</i>
            <span>Subscribe</span>
          </button>
          <button class="btn">
            <i class="material-icons">stars</i>
            <span>Get Bits</span>
          </button>
          <div class="icon-button" data-tooltip="More" data-tooltip-pos="left">
            <i class="material-icons">more_horiz</i>
          </div>
          <div class="chat-button" onClick="toggleChat()" data-tooltip="Toggle Chat" data-tooltip-pos="left">
            <i class="material-icons">chat</i>
          </div>
        </div>
      </div>
      <div class="stream-container">
        <div class="video-wrapper">
          <iframe src="https://player.twitch.tv/?video=v228563919" frameborder="0" allowfullscreen="true" scrolling="no" height="378" width="620"></iframe>
        </div>
        
        <div class="video-info">
          
          <div class="video-summary">
            <img src="https://static-cdn.jtvnw.net/ttv-boxart/Crusader%20Kings%20II-138x190.jpg" />
            <div class="video-text">
              <div class="video-title">CK2 Ironman Runs</div>
              <div class="video-category">
                <i class="material-icons">gamepad</i>
                <a>Crusader Kings II</a>
              </div>
            </div>
          </div>
          
          <div class="video-stats">
            <div class="icon-button red" data-tooltip="Watching Now" data-tooltip-pos="down-left">
              <i class="material-icons">people</i>
              <span>107</span>
            </div>
            <div class="icon-button" data-tooltip="Total Views" data-tooltip-pos="down-left">
              <i class="material-icons">visibility</i>
              <span>2,606</span>
            </div>
            <div class="icon-button">
              <i class="material-icons">share</i>
              <span>Share</span>
            </div>
            <div class="icon-button dropdown-toggle">
              <i class="material-icons">more_horiz</i>
              <span>More</span>
            </div>
          </div>
          
        </div>
        
      </div>
      <div class="channel-body">
        <p><em>It's empty in here</em></p>
      </div>
    </div>
    <div class="chat-page-overlay" onClick="toggleChat()"></div>
    <div class="chat-window">
      <div class="close-chat" onClick="toggleChat()" data-tooltip="Close Chat" data-tooltip-pos="right">
        <i class="material-icons">close</i>
      </div>
      <div class="chat-feed">
        <p><span class="name">rAstley69</span>We're no strangers to love</p>
        <p><span class="name">rAstley69</span>You know the rules and so do I</p>
        <p><span class="name">rAstley69</span>A full commitment's what I'm thinking of</p>
        <p><span class="name">rAstley69</span>You wouldn't get this from any other guy</p>
        <p><span class="name">rAstley69</span>I just wanna tell you how I'm feeling</p>
        <p><span class="name">rAstley69</span>Gotta make you understand</p>
        <p><span class="name">rAstley69</span>Never gonna give you up</p>
        <p><span class="name">rAstley69</span>Never gonna let you down</p>
        <p><span class="name">rAstley69</span>Never gonna run around and desert you</p>
        <p><span class="name">rAstley69</span>Never gonna make you cry</p>
        <p><span class="name">rAstley69</span>Never gonna say goodbye</p>
        <p><span class="name">rAstley69</span>Never gonna tell a lie and hurt you</p>
        <p><span class="name">rAstley69</span>We've known each other for so long</p>
        <p><span class="name">rAstley69</span>Your heart's been aching but you're too shy to say it</p>
        <p><span class="name">rAstley69</span>Inside we both know what's been going on</p>
        <p><span class="name">rAstley69</span>We know the game and we're gonna play it</p>
        <p><span class="name">rAstley69</span>And if you ask me how I'm feeling</p>
        <p><span class="name">rAstley69</span>Don't tell me you're too blind to see</p>
        <p><span class="name">rAstley69</span>Never gonna give you up</p>
        <p><span class="name">rAstley69</span>Never gonna let you down</p>
        <p><span class="name">rAstley69</span>Never gonna run around and desert you</p>
        <p><span class="name">rAstley69</span>Never gonna make you cry</p>
        <p><span class="name">rAstley69</span>Never gonna say goodbye</p>
        <p><span class="name">rAstley69</span>Never gonna tell a lie and hurt you</p>
        <p><span class="name">rAstley69</span>Never gonna give you up</p>
        <p><span class="name">rAstley69</span>Never gonna let you down</p>
        <p><span class="name">rAstley69</span>Never gonna run around and desert you</p>
        <p><span class="name">rAstley69</span>Never gonna make you cry</p>
        <p><span class="name">rAstley69</span>Never gonna say goodbye</p>
        <p><span class="name">rAstley69</span>Never gonna tell a lie and hurt you</p>
        <p><span class="name">rAstley69</span>Never gonna give, never gonna give</p>
        <p><span class="name">rAstley69</span>(Give you up)</p>
        <p><span class="name">rAstley69</span>(Ooh) Never gonna give, never gonna give</p>
        <p><span class="name">rAstley69</span>(Give you up)</p>
        <p><span class="name">rAstley69</span>We've known each other for so long</p>
        <p><span class="name">rAstley69</span>Your heart's been aching but you're too shy to say it</p>
        <p><span class="name">rAstley69</span>Inside we both know what's been going on</p>
        <p><span class="name">rAstley69</span>We know the game and we're gonna play it</p>
        <p><span class="name">rAstley69</span>I just wanna tell you how I'm feeling</p>
        <p><span class="name">rAstley69</span>Gotta make you understand</p>
        <p><span class="name">rAstley69</span>Never gonna give you up</p>
        <p><span class="name">rAstley69</span>Never gonna let you down</p>
        <p><span class="name">rAstley69</span>Never gonna run around and desert you</p>
        <p><span class="name">rAstley69</span>Never gonna make you cry</p>
        <p><span class="name">rAstley69</span>Never gonna say goodbye</p>
        <p><span class="name">rAstley69</span>Never gonna tell a lie and hurt you</p>
        <p><span class="name">rAstley69</span>Never gonna give you up</p>
        <p><span class="name">rAstley69</span>Never gonna let you down</p>
        <p><span class="name">rAstley69</span>Never gonna run around and desert you</p>
        <p><span class="name">rAstley69</span>Never gonna make you cry</p>
        <p><span class="name">rAstley69</span>Never gonna say goodbye</p>
        <p><span class="name">rAstley69</span>Never gonna tell a lie and hurt you</p>
        <p><span class="name">rAstley69</span>Never gonna give you up</p>
        <p><span class="name">rAstley69</span>Never gonna let you down</p>
        <p><span class="name">rAstley69</span>Never gonna run around and desert you</p>
        <p><span class="name">rAstley69</span>Never gonna make you cry</p>
      </div>

      <div class="chat-footer">
        <div class="chat-message-wrapper">
          <textarea placeholder="Send a message:"></textarea>
          <div class="chat-message-icons">
            <div class="icon-button" data-tooltip="Cheer" data-tooltip-pos="up-right">
              <i class="material-icons">stars</i>
            </div>
            <div class="icon-button" data-tooltip="Emote" data-tooltip-pos="up-right">
              <i class="material-icons">face</i>
            </div>
          </div>
        </div>
        <div class="button-wrapper">
          <div>
            <i class="material-icons" data-tooltip="Chat Settings" data-tooltip-pos="up-left">settings</i>
            <i class="material-icons" data-tooltip="Viewer List" data-tooltip-pos="up-left">list</i>
          </div>
          <button>Send Message</button>
        </div>
      </div>
    </div>
  </div>
</div>
@import url(https://fonts.googleapis.com/icon?family=Material+Icons);
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i");
@import url('https://fonts.googleapis.com/css?family=Work+Sans:100,200,300,400,500,600,700,800,900');

*,
*:before,
*:after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --theme-color: white;

  --primary-color: #6441a4;
  --primary-color-darker: #3e1b7e;
  --primary-color-brighter: #a481e4;
  --primary-color-low-opacity: #6441a466;

  --compliment-color: #eceff1;
  --compliment-color-darker: #d3d6d8;
  --compliment-color-brighter: #f9fcfe;

  --accent-color: #17141f;
  --accent-color-darker: #0a0712;
  --accent-color-brighter: #3d3a45;
}

$font-family: 'Work Sans', sans-serif;

::-moz-selection { background: var(--primary-color-low-opacity); }
::selection { background: var(--primary-color-low-opacity); }

body {
  &::-webkit-scrollbar {
    display: none;
  }
}

button {
  font-family: $font-family;
}

.header {
  top: 0;
  left: 0;
  right: 0;
  z-index: 5;
  height: 60px;
  display: flex;
  line-height: 1;
  padding: 0 15px;
  position: fixed;
  align-items: center;
  background-color: var(--theme-color);
  justify-content: space-between;
  border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s ease-in;

  @media (max-width: 600px) {
    .desktop-search {
      display: none;
    }

    .mobile-search {
      display: flex;

      .dropdown-content {
        width: 100vw;
        left: 0;
        right: 0;
        top: 50px;
        position: fixed;
        z-index: 1;

        input {
          border: none;
        }
      }
    }
  }

  @media (min-width: 601px) {
    .desktop-search {
      display: flex;
    }

    .mobile-search {
      display: none;
    }
  }

  .logo-wrapper {
    flex: 1;
    display: flex;
    align-items: center;

    .sidebar-toggle {
      padding: 5px;
      margin-left: -5px;
      margin-right: 10px;
      color: var(--accent-color);
      border: solid 1px transparent;
      transition: all 0.2s ease-in;

      &:hover {
        cursor: pointer;
        border-color: var(--primary-color-brighter);
        box-shadow: 0 0 6px 0 var(--primary-color-brighter);
      }
    }

    .search-bar {
      max-width: 500px;
      margin-left: 15px;
      margin-right: 10px;
    }
  }

  .profile-image {
    width: 36px;
    height: 36px;
    line-height: 0;
    border: solid 1px var(--compliment-color);
    transition: all 0.2s ease-in;

    img {
      width: 100%;
      height: 100%;
    }

    &:hover {
      cursor: pointer;
      border-color: var(--primary-color-brighter);
      box-shadow: 0 0 6px 0 var(--primary-color-brighter);
    }
  }

  .username {
    font-size: 16px;
    margin-bottom: 8px;
  }

  .logout {
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--primary-color);
    transition: all 0.2s ease-in;

    &:hover {
      cursor: pointer;
      color: var(--primary-color-brighter);
    }
  }
}

.search-bar {
  width: 100%;
  height: 36px;
  display: flex;
  position: relative;
  align-items: center;

  i {
    top: 50%;
    left: 6px;
    opacity: 0.3;
    position: absolute;
    pointer-events: none;
    color: var(--accent-color);
    transform: translateY(-50%);
    transition: all 0.2s ease-in;
  }

  input {
    width: 100%;
    height: 100%;
    border: none;
    outline: none;
    color: inherit;
    font-weight: 100;
    padding-left: 36px;
    font-family: inherit;
    color: var(--accent-color);
    border: solid 1px transparent;
    background-color: var(--compliment-color);
    transition: all 0.2s ease-in;

    &::-webkit-input-placeholder {
      opacity: 0.3;
      font-weight: 100;
      color: var(--accent-color);
      transition: color 0.2s ease-in;
    } /* Chrome/Opera/Safari */
    &::-moz-placeholder {
      opacity: 0.3;
      font-weight: 100;
      color: var(--accent-color);
      transition: color 0.2s ease-in;
    } /* Firefox 19+ */
    &:-ms-input-placeholder {
      opacity: 0.3;
      font-weight: 100;
      color: var(--accent-color);
      transition: color 0.2s ease-in;
    } /* IE 10+ */
    &:-moz-placeholder {
      opacity: 0.3;
      font-weight: 100;
      color: var(--accent-color);
      transition: color 0.2s ease-in;
    } /* Firefox 18- */

    &:focus {
      color: var(--accent-color);
      border-color: var(--primary-color-brighter);
      box-shadow: 0 0 6px 0 var(--primary-color-brighter);
      background-color: var(--theme-color);

      + i {
        opacity: 1;
        color: var(--primary-color-brighter);
        transform: translateY(-50%) rotate(90deg);
      }
    }
  }
}

.sidebar-wrapper {
  .sidebar {
    top: 0;
    bottom: 0;
    z-index: 99;
    left: -310px;
    width: 100%;
    height: 100%;
    position: fixed;
    max-width: 300px;
    overflow-y: auto;
    overflow-x: hidden;
    color: var(--accent-color);
    background-color: var(--theme-color);
    transition: all 0.2s ease-in, box-shadow 0.4s ease-in-out;

    &::-webkit-scrollbar {
      display: none;
    }

    .sidebar-header {
      display: flex;
      padding: 15px;
      align-items: center;
      flex-direction: column;
      justify-content: center;

      .search-bar {
        margin-top: 15px;
      }
    }

    .sidebar-group {
      padding: 0 10px;
      margin-bottom: 15px;
    }

    .sidebar-group-header {
      width: 100%;
      display: flex;
      font-size: 12px;
      margin-top: 15px;
      position: relative;
      letter-spacing: 1px;
      margin-bottom: 5px;
      padding: 0 5px 5px 5px;
      text-transform: uppercase;
      justify-content: space-between;

      div {
        opacity: 0.3;
      }

      .view-all {
        font-size: 10px;
        text-transform: uppercase;
        color: var(--primary-color);
        transition: all 0.2s ease-in;

        &:hover {
          cursor: pointer;
          color: var(--primary-color-brighter);
        }
      }

      &:after {
        content: "";
        display: block;
        height: 1px;
        width: 80px;
        position: absolute;
        bottom: 0;
        left: 5px;
        opacity: 0.2;
        background-color: var(--accent-color);
      }
    }

    .channel-link {
      width: 100%;
      padding: 5px;
      display: flex;
      align-items: center;
      transition: all 0.2s ease-in;

      .channel-image {
        width: 40px;
        height: 40px;
        align-self: center;
        margin-right: 10px;
        background-color: var(--theme-color);
        border: solid 1px transparent;
        transition: all 0.2s ease-in;

        img {
          width: 100%;
          height: 100%;
          display: block;
          transition: all 0.2s ease-in;
        }
      }

      .channel-info {
        flex: 1;
        color: var(--primary-color);
        transition: all 0.2s ease-in;

        .channel-status {
          display: flex;
          font-size: 10px;
          overflow: hidden;
          white-space: nowrap;
          align-items: center;
          text-transform: uppercase;
          justify-content: space-between;

          div:first-of-type {
            max-width: 100px;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
          }
        }
      }

      &:hover {
        cursor: pointer;
        background-color: var(--compliment-color);

        .channel-image {
          border-color: var(--primary-color-brighter);
          box-shadow: 0 0 6px 0 var(--primary-color-brighter);
        }
      }

      &.offline {
        .channel-image {
          img {
            filter: grayscale(100%);
          }
        }

        .channel-info {
          opacity: 0.3;
          color: var(--accent-color);
        }
      }
    }
  }

  .page-overlay {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    z-index: 50;
    position: fixed;
    pointer-events: none;
    background-color: rgba(0, 0, 0, 0.7);
    transition: all 0.2s ease-in;

    &:hover {
      cursor: pointer;
    }
  }

  &.open {
    .sidebar {
      transform: translateX(310px);
      box-shadow: 5px 0 20px -10px var(--primary-color-brighter);
    }

    .page-overlay {
      opacity: 1;
      pointer-events: auto;
    }
  }
}

.twitch-logo {
  path {
    fill: var(--primary-color);
    transition: fill 0.2s ease-in;
  }

  &:hover {
    cursor: pointer;

    path {
      fill: var(--primary-color-brighter);
    }
  }
}

.chat-window {
  top: 60px;
  right: -360px;
  bottom: 0;
  width: 100%;
  z-index: 2;
  position: fixed;
  max-width: 350px;
  overflow: hidden;
  border-left: solid 1px rgba(255, 255, 255, 0.1);
  background-color: var(--theme-color);
  transition: all 0.2s ease-in;

  @media (min-width: 1601px) {
    right: -610px;
    max-width: 600px;
  }

  @media (max-width: 600px) {
    transform: translateX(360px);
  }

  .close-chat {
    top: 5px;
    left: 5px;
    z-index: 2;
    width: 36px;
    height: 36px;
    opacity: 0.5;
    display: flex;
    position: absolute;
    align-items: center;
    justify-content: center;
    color: var(--accent-color);
    border: solid 1px transparent;
    transition: all 0.2s ease-in;

    &:hover {
      opacity: 1;
      cursor: pointer;
      background-color: var(--theme-color);
      border-color: var(--primary-color-brighter);
      box-shadow: 0 0 6px 0 var(--primary-color-brighter);
    }

    @media (min-width: 601px) {
      display: none;
    }
  }

  .chat-feed {
    padding: 15px;
    color: var(--accent-color);
    height: calc(100% - 140px);
    overflow-x: hidden;
    overflow-y: auto;
    position: relative;
    background-color: var(--theme-color);
    transition: all 0.2s ease-in;

    &::-webkit-scrollbar {
      display: none;
    }

    @media (max-width: 600px) {
      padding-top: 41px;
    }

    p {
      font-size: 12px;

      .name {
        font-weight: 600;
        margin-right: 5px;
        color: var(--primary-color);
        transition: all 0.2s ease-in;

        &:hover {
          cursor: pointer;
          color: var(--primary-color-brighter);
        }
      }

      &:not(:last-of-type) {
        margin-bottom: 15px;
      }
    }
  }

  .chat-footer {
    z-index: 1;
    padding: 15px;
    position: relative;
    border-top: solid 1px rgba(255, 255, 255, 0.1);

    .chat-message-wrapper {
      position: relative;

      textarea {
        width: 100%;
        height: 60px;
        resize: none;
        border: none;
        outline: none;
        font-size: 12px;
        margin-bottom: 5px;
        color: var(--accent-color);
        padding: 10px 70px 10px 10px;
        border: solid 1px transparent;
        background-color: var(--compliment-color);
        transition: all 0.2s ease-in;

        &::-webkit-input-placeholder {
          opacity: 0.3;
          font-weight: 100;
          color: var(--accent-color);
          transition: color 0.2s ease-in;
        } /* Chrome/Opera/Safari */
        &::-moz-placeholder {
          opacity: 0.3;
          font-weight: 100;
          color: var(--accent-color);
          transition: color 0.2s ease-in;
        } /* Firefox 19+ */
        &:-ms-input-placeholder {
          opacity: 0.3;
          font-weight: 100;
          color: var(--accent-color);
          transition: color 0.2s ease-in;
        } /* IE 10+ */
        &:-moz-placeholder {
          opacity: 0.3;
          font-weight: 100;
          color: var(--accent-color);
          transition: color 0.2s ease-in;
        } /* Firefox 18- */

        &:focus {
          color: var(--accent-color);
          border-color: var(--primary-color-brighter);
          box-shadow: 0 0 6px 0 var(--primary-color-brighter);
          background-color: var(--theme-color);
        }
      }

      .chat-message-icons {
        top: 0;
        right: 0;
        display: flex;
        position: absolute;
        align-items: center;

        .icon-button {
          opacity: 0.5;

          &:hover {
            opacity: 1;
          }
        }
      }
    }

    .button-wrapper {
      display: flex;
      align-items: center;
      justify-content: space-between;

      > div {
        display: flex;
        align-items: center;
        justify-content: space-between;

        i {
          padding: 5px;
          color: var(--accent-color);
          border: solid 1px transparent;
          transition: all 0.2s ease-in;

          &:last-of-type {
            margin-right: 10px;
          }

          &:hover {
            cursor: pointer;
            border-color: var(--primary-color-brighter);
            box-shadow: 0 0 6px 0 var(--primary-color-brighter);
          }
        }
      }

      button {
        width: 100%;
        height: 40px;
        color: white;
        border: none;
        outline: none;
        font-size: 12px;
        letter-spacing: 1px;
        text-transform: uppercase;
        border: solid 1px transparent;
        background-color: var(--primary-color);
        transition: all 0.2s ease-in;

        &:hover {
          cursor: pointer;
          color: var(--primary-color-brighter);
          background-color: var(--theme-color);
          border-color: var(--primary-color-brighter);
          box-shadow: 0 0 6px 0 var(--primary-color-brighter);
        }
      }
    }
  }
}

.page-content {
  z-index: 1;
  width: 100%;
  max-width: 100%;
  position: relative;
  padding: 135px 15px 15px 15px;
  transition: all 0.2s ease-in;

  .channel-header {
    top: 60px;
    left: 0;
    right: 0;
    width: 100%;
    height: 60px;
    display: flex;
    flex-shrink: 0;
    overflow: hidden;
    position: absolute;
    align-items: center;
    color: var(--accent-color);
    justify-content: space-between;
    background-color: var(--theme-color);
    transition: all 0.2s ease-in;

    .channel-nav {
      height: 100%;
      display: flex;
      overflow-x: auto;
      overflow-y: hidden;
      padding-left: 15px;
      align-items: center;
      max-width: calc(100% - 97px);

      &::-webkit-scrollbar {
        display: none;
      }

      @media (min-width: 993px) {
        max-width: calc(100% - 335px);
      }

      a {
        opacity: 0.5;
        height: 100%;
        display: flex;
        padding: 0 10px;
        font-size: 12px;
        align-items: center;
        letter-spacing: 1px;
        text-transform: uppercase;
        background-color: transparent;
        border-top: solid 3px transparent;
        border-bottom: solid 3px transparent;
        transition: border-bottom-color 0.2s ease-in, opacity 0.2s ease-in;

        strong {
          margin-right: 5px;
        }

        .channel-image {
          width: 40px;
          height: 40px;
          margin-right: 10px;

          + span {
            font-size: 14px;
            letter-spacing: 0;
            text-transform: none;
          }
        }

        &:not(.active):hover {
          opacity: 1;
          cursor: pointer;
          border-bottom-color: var(--compliment-color);
        }

        &.active {
          opacity: 1;
          border-bottom-color: var(--primary-color);
        }
      }
    }

    .channel-header-fixed-buttons {
      height: 100%;
      display: flex;
      align-items: center;
      padding: 0 15px 0 10px;
      border-left: solid 1px rgba(255, 255, 255, 0.1);

      .btn {
        display: none;
        margin-right: 5px;

        @media (min-width: 993px) {
          display: flex;
        }
      }

      .icon-button {
        @media (min-width: 993px) {
          display: none;
        }
      }

      .chat-button {
        width: 36px;
        height: 36px;
        display: flex;
        flex-shrink: 0;
        align-items: center;
        justify-content: center;
        border: solid 1px transparent;
        transition: border-color 0.2s ease-in, box-shadow 0.2s ease-in;

        &:hover {
          cursor: pointer;
          border-color: var(--primary-color-brighter);
          box-shadow: 0 0 6px 0 var(--primary-color-brighter);
        }
      }
    }
  }

  .channel-body {
    padding: 0 15px;
    margin-top: 15px;
    text-align: center;
    color: var(--accent-color);
    transition: color 0.2s ease-in;
  }
}

.stream-container {
  background-color: var(--theme-color);
  border: solid 1px rgba(255, 255, 255, 0.1);
  transition: all 0.2s ease-in;

  .video-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    padding-top: 25px;
    height: 0;

    iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
    }
  }

  .video-info {
    padding: 10px;
    line-height: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    @media (min-width: 601px) {
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
    }

    img {
      height: 60px;
      margin-right: 10px;
      border: solid 1px var(--compliment-color);
      transition: all 0.2s ease-in;

      &:hover {
        cursor: pointer;
        border-color: var(--primary-color-brighter);
        box-shadow: 0 0 6px 0 var(--primary-color-brighter);
      }
    }

    .video-text {
      line-height: 1.5;
      color: var(--accent-color);
      transition: color 0.2s ease-in;
    }

    .video-summary {
      flex: 1;
      width: 100%;
      display: flex;
      align-items: center;

      .video-title {
        font-size: 16px;
      }

      .video-category {
        display: flex;
        line-height: 1.1;
        align-items: center;

        i {
          opacity: 0.5;
          font-size: 18px;
          margin-right: 5px;
        }

        a {
          color: var(--primary-color);
          transition: color 0.2s ease-in;

          &:hover {
            cursor: pointer;
            color: var(--primary-color-brighter);
          }
        }
      }
    }

    .video-stats {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      margin-top: 5px;

      @media (min-width: 601px) {
        margin-top: 0;
      }
    }
  }
}

.dropdown {
  position: relative;

  .dropdown-content {
    opacity: 0;
    font-size: 12px;
    pointer-events: none;
    position: absolute;
    top: calc(100% - 10px);
    right: 0;
    min-width: 200px;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 80vh;
    color: var(--accent-color);
    background-color: var(--theme-color);
    border: solid 1px var(--primary-color-brighter);
    box-shadow: 0 0 6px 0 var(--primary-color-brighter);
    transition: all 0.2s ease-in;

    .dropdown-header {
      padding: 15px;
    }

    .dropdown-toggle {
      transition: all 0.2s ease-in;
    }

    .dropdown-group {
      border-top: solid 1px var(--compliment-color);
      transition: all 0.2s ease-in;
    }

    .dropdown-link {
      display: flex;
      text-align: right;
      padding: 10px 15px;
      align-items: center;
      transition: all 0.2s ease-in;

      i {
        margin-right: 15px;
        font-size: 18px;
        transition: all 0.2s ease-in;
      }

      span {
        transition: all 0.2s ease-in;
      }

      &:hover {
        cursor: pointer;
        background-color: var(--compliment-color);

        span {
          color: var(--primary-color);
        }
      }

      &.active {
        i {
          color: var(--primary-color);
        }
      }
    }
  }

  &.open {
    .dropdown-toggle {
      border: solid 1px var(--primary-color-brighter);
      box-shadow: 0 0 6px 0 var(--primary-color-brighter);
    }

    .dropdown-content {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(10px);
    }
  }
}

.nav {
  display: flex;
  align-items: center;

  .profile-image-wrapper {
    margin-left: 10px;
  }

  i.dropdown-toggle {
    padding: 5px;
    color: var(--accent-color);
    border: solid 1px transparent;
    transition: all 0.2s ease-in;

    &:hover {
      cursor: pointer;
      border-color: var(--primary-color-brighter);
      box-shadow: 0 0 6px 0 var(--primary-color-brighter);
    }
  }
}

.chat-page-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  opacity: 0;
  pointer-events: none;
  background-color: rgba(0, 0, 0, 0.7);
  transition: all 0.2s ease-in;
}

.app-container {
  font-size: 14px;
  line-height: 1.5;
  min-height: 100vh;
  font-family: $font-family;
  background-color: var(--compliment-color);
  transition: all 0.2s ease-in;

  &.dark {
    --theme-color: black;

    --compliment-color: #17141f;
    --compliment-color-darker: #0a0712;
    --compliment-color-brighter: #3d3a45;

    --accent-color: #eceff1;
    --accent-color-darker: #d3d6d8;
    --accent-color-brighter: #f9fcfe;
  }

  &.chat {
    .chat-window {
      @media (min-width: 601px) {
        transform: translateX(-360px);
      }

      @media (min-width: 1601px) {
        transform: translateX(-610px);
      }
    }

    .page-content {
      @media (min-width: 601px) {
        max-width: calc(100% - 350px);
      }

      @media (min-width: 1601px) {
        max-width: calc(100% - 600px);
      }
    }
  }

  &:not(.chat) {
    @media (max-width: 600px) {
      .chat-window {
        transform: translateX(-360px);
      }

      .chat-page-overlay {
        opacity: 1;
        pointer-events: auto;

        &:hover {
          cursor: pointer;
        }
      }
    }
  }
}

.icon-button {
  width: auto;
  height: 36px;
  display: flex;
  padding: 0 5px;
  align-items: center;
  justify-content: center;
  color: var(--accent-color);
  border: solid 1px transparent;
  transition: all 0.2s ease-in;

  span {
    margin-left: 5px;
  }

  &:hover {
    cursor: pointer;
    background-color: var(--theme-color);
    border-color: var(--primary-color-brighter);
    box-shadow: 0 0 6px 0 var(--primary-color-brighter);
  }
}

.btn {
  width: auto;
  height: 36px;
  color: white;
  display: flex;
  outline: none;
  padding: 0 10px;
  line-height: 1.5;
  align-items: center;
  justify-content: center;
  border: solid 1px transparent;
  background-color: var(--primary-color);
  transition: all 0.2s ease-in;

  i {
    font-size: 16px;
  }

  span {
    font-size: 12px;
    margin-left: 5px;
    white-space: nowrap;
  }

  &:hover {
    cursor: pointer;
    color: var(--primary-color-brighter);
    background-color: var(--theme-color);
    border-color: var(--primary-color-brighter);
    box-shadow: 0 0 6px 0 var(--primary-color-brighter);
  }
}

.red {
  color: red;
}

[data-tooltip] {
  position: relative;
  cursor: pointer;

  &:after {
    opacity: 0;
    z-index: 10;
    line-height: 1.5;
    padding: 5px 10px;
    position: absolute;
    white-space: nowrap;
    pointer-events: none;
    color: var(--theme-color);
    font-size: 12px !important;
    content: attr(data-tooltip);
    text-shadow: none !important;
    -webkit-font-smoothing: auto;
    font-style: normal !important;
    font-weight: normal !important;
    background: var(--accent-color);
    font-family: $font-family;

    transition: all 0.2s ease-in;
  }

  &:not([data-tooltip-disabled="true"]):not(.tooltip-disabled) {
    &:hover {
      &:after {
        opacity: 1;
        transition-delay: 0.5s;
      }
    }
  }

  &[data-tooltip-pos="up"] {
    &:after {
      left: 50%;
      bottom: 100%;
      margin-bottom: 10px;

      transform: translate(-50%, 10px);
      transform-origin: top;
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(-50%, 0);
      }
    }
  }

  &[data-tooltip-pos="up-left"] {
    &:after {
      left: 0;
      bottom: 100%;
      margin-bottom: 10px;

      transform: translate(0, 10px);
      transform-origin: top;
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(0, 0);
      }
    }
  }

  &[data-tooltip-pos="up-right"] {
    &:after {
      right: 0;
      bottom: 100%;
      margin-bottom: 10px;

      transform: translate(0, 10px);
      transform-origin: top;
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(0, 0);
      }
    }
  }

  &[data-tooltip-pos="down"] {
    &:after {
      left: 50%;
      top: 100%;
      margin-top: 10px;

      transform: translate(-50%, -10px);
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(-50%, 0);
      }
    }
  }

  &[data-tooltip-pos="down-left"] {
    &:after {
      left: 0;
      top: 100%;
      margin-top: 10px;

      transform: translate(0, -10px);
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(0, 0);
      }
    }
  }

  &[data-tooltip-pos="down-right"] {
    &:after {
      right: 0;
      top: 100%;
      margin-top: 10px;

      transform: translate(0, -10px);
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(0, 0);
      }
    }
  }

  &[data-tooltip-pos="left"] {
    &:after {
      top: 50%;
      right: 100%;
      margin-right: 10px;

      transform: translate(10px, -50%);
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(0, -50%);
      }
    }
  }

  &[data-tooltip-pos="right"] {
    &:after {
      top: 50%;
      left: 100%;
      margin-left: 10px;

      transform: translate(-10px, -50%);
    }

    &:hover,
    &[data-tooltip-visible] {
      &:after {
        transform: translate(0, -50%);
      }
    }
  }

  &[data-tooltip-length="small"] {
    &:after {
      width: 80px;
      white-space: normal;
    }
  }

  &[data-tooltip-length="medium"] {
    &:after {
      width: 150px;
      white-space: normal;
    }
  }

  &[data-tooltip-length="large"] {
    &:after {
      width: 260px;
      white-space: normal;
    }
  }

  &[data-tooltip-length="xlarge"] {
    &:after {
      width: 380px;
      white-space: normal;

      @media screen and (max-width: 768px) {
        width: 90vw;
        white-space: normal;
      }
    }
  }

  &[data-tooltip-length="fit"] {
    &:after {
      width: 100%;
      white-space: normal;
    }
  }

  &[data-tooltip-break] {
    &:after {
      white-space: pre;
    }
  }

  &[data-tooltip-alignment="left"] {
    &:after {
      text-align: left;
    }
  }

  &[data-tooltip-alignment="right"] {
    &:after {
      text-align: right;
    }
  }

  &[data-tooltip-alignment="center"] {
    &:after {
      text-align: center;
    }
  }
}
View Compiled
function toggleSidebar() {
  $(".sidebar-wrapper").toggleClass("open");
}

function toggleDarkMode() {
  $(".app-container").toggleClass("dark");

  if ($(".app-container").hasClass("dark")) {
    $("#darkMode").html("check_box");
    $("#darkMode")
      .parent()
      .addClass("active");
  } else {
    $("#darkMode").html("check_box_outline_blank");
    $("#darkMode")
      .parent()
      .removeClass("active");
  }
}

function toggleChat() {
  $(".app-container").toggleClass("chat");
}

$(".dropdown-toggle").on("click", function(e) {
  $parent = $(this).parent();

  var remove = false;
  if ($parent.hasClass("open")) {
    remove = true;
  }

  setTimeout(function() {
    if (remove) {
      $parent.removeClass("open");
    } else {
      $parent.addClass("open");
    }
  }, 0);
});

$(window).on("click", function() {
  $(".dropdown").removeClass("open");
});

$(".mobile-search .dropdown-toggle").on("click", function(e) {
  $(".mobile-search input").focus();
});

$(".mobile-search input").on("click", function(e) {
  e.stopPropagation();
});
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js
  2. https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js