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 ifcolor1
equals 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)
- convertcolor
to RGB space ( range: 0 ~ 255 ).rgbfv(color)
- convertcolor
to RGB space ( range: 0 ~ 1 ).web(color)
- convertcolor
to web friendly string.hex(color,compact)
- convertcolor
to hex string. use#fff
format when possible ifcompact
is true.rgbaStr(color)
- convertcolor
to rgba string.hsl(color)
- convertcolor
to HSL spacehcl(color)
- convertcolor
to HCL spacelab(color)
- convertcolor
to LAB spaceint(color)
- convertcolor
to 24bit integer.rand()
- randomize and return a colorlighter(color, strength)
- makecolor
lighterdarker(color, strength)
- makecolor
darkercomplement(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
transparent
string, 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.web
instead ofldcolor.hex
to convert colors if transparency is needed.
MIT