function Color(hex = '#000000')
{
  Unit.call(this);
  
  this.example = "#ff0000";
  this.hex = hex;

  this.rgb = function()
  {
    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(this.hex);
    return result ? {
        r: parseInt(result[1], 16),
        g: parseInt(result[2], 16),
        b: parseInt(result[3], 16)
    } : null;
  }
  
  this.rgba = function()
  {
    return "rgba("+this.rgb().r+","+this.rgb().g+","+this.rgb().b+",1)";
  }

  this.floats = function()
  {
    var rgb = this.rgb();
    return { r:rgb.r/255, g:rgb.g/255, b:rgb.b/255 }
  }
  
  this.render = function()
  {
    return this.hex;
  }
  
  this.rgb_to_hex = function(rgb)
  {
    return "#"+parseInt(rgb.r,10).toString(16)+parseInt(rgb.g,10).toString(16)+parseInt(rgb.b,10).toString(16);
  }

  this.brightness = function()
  {
    return this.rgb() ? (this.rgb().r + this.rgb().g + this.rgb().b)/3 : 0;
  }

  this.style = function()
  {
    return this.brightness() > 150 ? "bright" : "dark";
  }
}