48 lines
1005 B
JavaScript
48 lines
1005 B
JavaScript
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.toString = 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";
|
|
}
|
|
} |