<!DOCTYPE html>
<html>

  <head>
    <script data-require="jquery@*" data-semver="3.1.1" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body>

    <span>Credit to: Tiago Dias aka <a href="https://gist.github.com/krypton/2400088" target="_blank">krypton</a></span>
    <form>
      <div class="row"><span class="color-block color1-block"></span><input id="color1-input" name="color1-input" placeholder="#6D161C" value="#6D161C" onKeyup="parseTextColor()" onBlur="parseTextColor()" onFocus="parseTextColor()"/></div>
      <div class="row"><span class="color-block color2-block"></span><input id="color2-input" name="color2-input" placeholder="#E45E69" value="#E45E69" onKeyup="parseTextColor()" onBlur="parseTextColor()" onFocus="parseTextColor()"/></div>
      <button type="submit">Compare</button>
      <h1>Percentage difference is: <span class="result"></span></h1>
    </form>


  </body>

</html>
body{
  font-family: 'arial';
  .row {
    display: flex;
    margin-bottom: 12px;
  }
  .color-block {
    min-width: 30px;
    min-height: 30px;
    display: inline-block;
    margin-right: 10px;
  }
  h1{
    font-size: 1.4em;
  }
  form {
    margin-top: 30px;
    input {
      display: inline-block;
      padding: .5em;
      font-size: .8em;
      border-radius: .2em;
      border: 1px solid gray;
    }
    button {
      padding: 8px;
      font-size: 1em;
      background-color: white;
      border: 1px solid blue;
      color: blue;
      border-radius: .3em;
      outline: 0;
      cursor: pointer;
      &:hover {
        background-color: darken(white, 7%);
      }
    }
  }
}
function color_meter() {
  
    var cwith2 = $( "#color1-input" ).val();
    var ccolor2 = $( "#color2-input" ).val();
    
    if (!cwith2 && !ccolor2) return;
    
    var _cwith2  = (cwith2.charAt(0)=="#") ? cwith2.substring(1,7) : cwith2;
    var _ccolor2 = (ccolor2.charAt(0)=="#") ? ccolor2.substring(1,7) : ccolor2;
    
    var _r = parseInt(_cwith2.substring(0,2), 16);
    var _g = parseInt(_cwith2.substring(2,4), 16);
    var _b = parseInt(_cwith2.substring(4,6), 16);

    var __r = parseInt(_ccolor2.substring(0,2), 16);
    var __g = parseInt(_ccolor2.substring(2,4), 16);
    var __b = parseInt(_ccolor2.substring(4,6), 16);
    
    var p1 = (_r / 255) * 100;
    var p2 = (_g / 255) * 100;
    var p3 = (_b / 255) * 100;

    var perc1 = Math.round((p1 + p2 + p3) / 3);
    
    p1 = (__r / 255) * 100;
    p2 = (__g / 255) * 100;
    p3 = (__b / 255) * 100;
    
    var perc2 = Math.round((p1 + p2 + p3) / 3);
    
    var result = Math.abs(perc1 - perc2);
    $( ".result" ).text( result );
    $( "h1" ).show();
    
}

function parseTextColor() {
    var cwith2 = $( "#color1-input" ).val();
    var ccolor2 = $( "#color2-input" ).val();
    
    if (!cwith2 && !ccolor2) return;
    
    $( "#color1-input" ).css({ 'color': cwith2});
    $( "#color2-input" ).css({ 'color': ccolor2});
    $( ".color1-block" ).css({ 'background-color': cwith2});
    $( ".color2-block" ).css({ 'background-color': ccolor2});
}

$(document).ready(function() {
  parseTextColor();
  $( "h1" ).hide();
  
  
  $( "form" ).submit(function( event ) {
    event.preventDefault();
    parseTextColor();
    color_meter();
  });
  
  
});