Nice dashboard

by zerrax

HTML

<script src="//cdn.rawgit.com/kimmobrunfeldt/progressbar.js/0.7.4/dist/progressbar.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1/Chart.min.js"></script>
<div id="container">
  <div id="sideMenu">
    <h1>Sales Report</h1>

    <ul class="menu">
      <li>Main</li>
      <li>Dashboard</li>
      <li>Reports <span class="notification">8</span></li>
      <li>Groups</li>
    </ul>

    <ul class="menu">
      <li>Account</li>
      <li>Activity</li>
      <li>Messages <span class="notification">4</span></li>
      <li>Downloads</li>
    </ul>

    <ul class="menu">
      <li>Categories</li>
      <li>Credit Sales <span class="colorIcon red"></span></li>
      <li>Channel Sales <span class="colorIcon orange"></span></li>
      <li>Direct Sales <span class="colorIcon green"></span></li>
    </ul>
    <div class="addCategory"><span class="plus">+</span> Add Category</div>
  </div>
  <div id="content">
    <div id="titleBar">
      <h2>Dashboard</h2>
      <div id="profilePic">
        <img src="http://s3-us-west-2.amazonaws.com/s.cdpn.io/153917/profile/profile-512_1.jpg" />
      </div>
      <span class="controls activeControl">Weekly</span>
      <span class="controls">Monthly</span>
    </div>

    <div class="mainChart">
      <canvas style="width:100%" id="salesData"></canvas>
      <h2>Total Sales</h2>

      <div class="clearFix"></div>

      <div id="totalSales">
        <div class="col">
          <div id="creditSales" class="progressBar"></div>
          <h3>$36,059</h3>
          <span class="progressTitle">Credit Sales</span>
        </div>
        <div class="col">
          <div id="channelSales" class="progressBar"></div>
          <h3>$24,834</h3>
          <span class="progressTitle">Channel Sales</span>
        </div>
        <div class="col">
          <div id="directSales" class="progressBar"></div>
          <h3>$15,650</h3>
          <span class="progressTitle">Direct Sales</span>
        </div>
      </div>

     ...

CSS

@import url(http://fonts.googleapis.com/css?family=Lato:100,300,400,700);

html, body {
  height: 100%;
  font-family: 'Lato', sans-serif;
}
body {
  background: linear-gradient(135deg, rgba(65,131,155,1) 0%,rgba(51,98,123,1) 100%);
}
* {
  box-sizing: border-box;
}
#container {
  display: table;
  width: 80%;
  background: #202b33;
  margin: 60px auto;
  border-radius: 4px;
  overflow: hidden;
}

/* Side Bar */
#sideMenu {
  width: 240px;
  height: 100%;
  padding: 30px;
  border-right: 1px solid #111;
  display: table-cell;
  vertical-align: top;
  color: #fff;
}
.menu {
  list-style: none;
  margin:  24px 0;
  padding: 0;
}
.menu li {
  display: block;
  height: 30px;
  width: 100%;
  line-height: 30px;
  font-size: 14px;
  font-weight: 200;
  color: rgba(255, 255, 255, .6);
  position: relative;
}
.menu li:hover {
  color: #239ae3;
}
.menu li:first-child {
  height: 35px;
  line-height: 35px;
  font-size: 16px;
  font-weight: 400;
  color: #fff;
}
.addCategory {
  font-size: 13px;
  font-weight: 200;
  color: rgba(255, 255, 255, .2);
}
.addCategory:hover {
  color: #fff;
}

/* Content */
#content {
  width: calc(100% - 240px);
  height: 100%;
  padding: 25px;
  display: table-cell;
}
#titleBar {
  height: 36px;
  margin-bottom: 30px;
}
#profilePic {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #999;
  float: right;
  margin-top: -8px;
  margin-left: 14px;
  overflow: hidden;
}
#profilePic img {
  width: 100%;
}
.controls {
  display: block;
  width: 70px;
  height: 20px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 10px;
  font-weight: 300;
  text-transform: uppercase;
  text-align: center;
  line-height: 20px;
  float: right;
  border-radius: 20px;
}
.activeControl {
  background: rgba(255, 255, 255, 0.9);
  color: #202b33;
  font-weight: 600;
}
#salesData {
  margin-bottom: 60px;
}
#totalSales {
  height: 120px;
  position: relative;
  margin-top: 24px;
  margin-bottom: 50px;
  display: grid;
  grid-template-columns: auto auto...

JavaScript

// https://dribbble.com/shots/1821178-Sales-Report?list=buckets&offset=0

// Line Chart
var ctx = document.getElementById("salesData").getContext("2d");

var gradient = ctx.createLinearGradient(0,0,700,0);
    gradient.addColorStop(0, 'rgba(255, 204, 128, 1)');   
    gradient.addColorStop(0.5, 'rgba(255, 152, 0, 1)');
    gradient.addColorStop(1, 'rgba(239, 108, 0, 1)');

var salesData = {
  labels: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
  datasets: [
    {
      label: "Front",
      fillColor: "rgba(0, 0, 0, 0.15)",
      strokeColor: gradient,
      pointColor: gradient,
      pointStrokeColor: "#202b33",
      pointHighlightStroke: "rgba(225,225,225,0.9)",
      data: [44, 40, 48, 55, 64, 55, 72]
    },
    /*{
      label: "Middle",
      fillColor: "rgba(255, 172, 100, 0.1)",
      strokeColor: "rgba(255, 172, 100, 1)",
      pointColor: "rgba(255, 172, 100, 1)",
      pointStrokeColor: "#202b33",
      pointHighlightStroke: "rgba(225,225,225,0.9)",
      data: [1900, 1700, 2100, 3600, 2200, 2500, 2000]
    },*/
    {
      label: "Back",
      fillColor: "rgba(19, 71, 34, 0.3)",
      strokeColor: "rgba(88, 188, 116, 1)",
      pointColor: "rgba(88, 188, 116, 1)",
      pointStrokeColor: "#202b33",
      pointHighlightStroke: "rgba(225,225,225,0.9)",
      data: [24, 20, 28, 35, 44, 45, 52]
    }
  ]
};


window.myLineChart = new Chart(ctx).Line(salesData, {
  pointDotRadius : 0,
  pointDotStrokeWidth : 3,
  datasetStrokeWidth : 10,
  scaleShowVerticalLines: false,
  scaleGridLineWidth : 2,
  scaleShowGridLines : true,
  scaleGridLineColor : "rgba(225, 255, 255, 0.02)",
  scaleOverride: true,
  scaleSteps: 9,
  scaleStepWidth: 10,
  scaleStartValue: 0,

  responsive: true

});

//Credit Sales
var creditSales = new ProgressBar.Circle('#creditSales', {
  color: '#e81760',
  strokeWidth: 3,
  trailWidth: 3,
  duration: 1500,
  text: {
    value: '0%'
  },
  step: function(state, bar) {
    bar.setText((bar.value() *...