JSFiddle - React, Tailwind, and code Playground

by Le Huynh Anh Tien

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.3/Chart.bundle.js"></script>
<div style="width:75%;">
  <canvas id="canvas"></canvas>
  <button id="action">action</button>
</div>

JavaScript

var randomScalingFactor = function() {
   return Math.round(Math.random() * 10);
 };
 var randomColorFactor = function() {
   return Math.round(Math.random() * 255);
 };
 var randomColor = function(opacity) {
   return 'rgba(' + randomColorFactor() + ',' + randomColorFactor() + ',' + randomColorFactor() + ',' + (opacity || '.3') + ')';
 };

 var config = {
   type: 'line',
   data: {
     labels: ["January", "February", "March", "April", "May", "June", "July"],
     datasets: [{
       label: "My First dataset",
       data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
       fill: false,
       borderDash: [5, 5],
     }, {
       label: "My Second dataset",
       data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
       fill: false,
       borderDash: [5, 5],
     }, {
       label: "My Third dataset - No bezier",
       data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
       lineTension: 0,
       fill: false,
     }]
   },
   options: {
     responsive: true,
     legend: {
       position: 'bottom',
     },
     hover: {
       mode: 'label'
     },
     scales: {
       xAxes: [{
         display: true,
         scaleLabel: {
           display: true,
           labelString: 'Month'
         }
       }],
       yAxes: [{
         display: true,
         scaleLabel: {
           display: true,
           labelString: 'Value'
         },
         ticks: {
           min: 0,
           max: 10,
           stepSize: 3,
           suggestedMin: 0.5,
           suggestedMax: 5.5,
           /* callback: function(label, index, labels) {
             switch (label) {
               case 0:
                 return...