lightweight JS color library, adopted from d3-color.
construct a color object from some input, such as "#f00", "rgba(0,255,128,1)":
color = new ldcolor(some-color-object-or-string);
the result color will be in either RGBA or HSLA. Or, convert to the target format directly:
ldcolor.hex(0xff9922);
ldcolor.hcl("#f92");
color = new ldcolor("hsl(50%,50%,50%)");
rgb = color.rgb();
ldcolor is an object with following fields:
- color space specific fields:
- RGB
- r: Red component, for RGB.
- g: Green component, for RGB.
- b: Blue component, for RGB.
- HCL / HSL
- h: Hue component, for HSL/HCL.
- s: Saturation component, for HSL.
- c: Chroma component, for HCL.
- l: Red component, for HSL/HCL.
- LAB
- @l: L(Lightness) component, for LAB
- @a: A*(Green-Red) component, for LAB
- @b: B*(Blue-Yellow) component, for LAB.
- Generic
- a: Alpha component, if applicable.
- hex: hex code for this color, if exists.
- value: web color value for this color. deprecated.
- offset: between 0 ~ 1, position if visualized. Also work as offset in gradient.
- mean: purpose for this color in a palette, if applicable.
- Application Defined TBD.
- RGB
ldcolor.js wont't write into offset, hex and mean fields.
ldcolor provides following API:
same(color1, color2)- check ifcolor1equals tocolor2.- colors are checked after converted to integer RGB with alpha channel to 3 decimal points, to prevent inconsistency between conversion of hex, hsl and other formats.
rgb(color)- convertcolorto RGB space ( range: 0 ~ 255 ).rgbfv(color)- convertcolorto RGB space ( range: 0 ~ 1 ).web(color)- convertcolorto web friendly string.hex(color,compact)- convertcolorto hex string. use#fffformat when possible ifcompactis true.rgbaStr(color)- convertcolorto rgba string.hsl(color)- convertcolorto HSL spacehcl(color)- convertcolorto HCL spacelab(color)- convertcolorto LAB spaceint(color)- convertcolorto 24bit integer.rand()- randomize and return a colorlighter(color, strength)- makecolorlighterdarker(color, strength)- makecolordarkercomplement(color)- get complementary ofcolor
These API are also available as a member function in a ldcolor object:
(new ldcolor('#fff')).darker!
- there is no RGB information in
transparentstring, thus it will returnrgba(NaN,NaN,NaN,0). - colors with NaN or semi-transparent colors can't be converted to hex code. Thus, in order to use them safely, use
ldcolor.webinstead ofldcolor.hexto convert colors if transparency is needed.
MIT