Research
Security News
Malicious npm Package Typosquats react-login-page to Deploy Keylogger
Socket researchers unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
culori
Advanced tools
Readme
Culori is a general-purpose color library for JavaScript.
There are already several excellent libraries out there for manipulating colors in JavaScript.
This library aims to provide a simple API to:
Convert between a variety of color formats.
Build a color picker for a particular format. Let's take the ubiquitous HSV color picker; the library should allow me to:
h
, s
, v
values to a color that I can then convert to any other formatOf particular interest is deciding when to apply the alpha channel to the interface (i.e. to an opacity slider). If the interface contains color swatches, I should decide whether to use the alpha channel or not:
#ffffff
I might only use the h
, s
and v
value;#ffffff00
I might also want to apply the a: 0
value.Create color schemes based on a base color.
Obtain color scales to use in data visualization.
The library supports all the color formats defined in the CSS Colors Level 4:
Additionally, it supports:
The implementations I've already finished ar denoted by checkmarks (✓).
§ culori( Specifier or Color ) <>
Just a convenience for culori.rgb().
culori('tomato');
culori('rgb(255, 0, 0)');
culori({ r: 0.5, g: 0.1, b: 0.2 });
§ culori.parse( Specifier ) → Color <>
Accepts a color in any CSS Colors Level 4 format and returns the corresponding RGB or HSL object.
If you'd like to always get a RGB representation regardless of the CSS format, use culori() instead.
Note: If the color does not specify an explicit alpha value, the a
property of the RGB object is marked as undefined. Other color libraries will put a default a: 1
for these colors, but I found this assumption to be limiting. As such, we leave it to the user to place a: 1
instead of undefined
when appropriate for their needs.
The individual parsers are exposed in the culori.parse namespace:
§ culori.convert( Specifier or Color ) <>
§ culori.css( Color, format ) <>
Converts a Color to a CSS representation. Accepted values for the format:
Format | Example |
---|---|
rgb (default) | |
hex | |
hsl (coming soon) |
§ culori.hsl( Specifier or HSL or RGB or Object) → HSL <>
Accepts a color in any CSS Colors Level 4 format and returns the corresponding HSL object.
When passed a Culori object:
When passed a plain object, it assumes it's a normalized HSL object.
§ culori.hsv( Specifier or HSL or RGB or Object) → HSV <>
Accepts a color in any CSS Colors Level 4 format and returns the corresponding HSV object.
When passed a Culori object:
When passed a plain object, it assumes it's a normalized HSV object.
§ culori.hsi( Specifier or HSI or RGB or Object) → HSI <>
Accepts a color in any CSS Colors Level 4 format and returns the corresponding HSI object.
When passed a Culori object:
When passed a plain object, it assumes it's a normalized HSI object.
Contains the set of CSS Named Colors.
§ culori.brewer
ColorBrewer (coming soon).
§ culori.round( value | object [, precision = 4 ] ) <>
Rounds the value, or each property in an object, to a certain number of decimal places. This is useful in a couple of situations:
§ culori.prepare( Specifier or Color ) <>
Specifier. is a color in any parsable format. It is normally a string, but numbers (e.g. 0xFFF
) are also accepted.
RGB is any plain object containing the r
, g
, b
, and optionally a
, properties with all values normalized to the interval [0..1]
.
HSL is any plain object containing the h
, s
, l
, and optionally a
, properties with the values for s
, l
, and a
, normalized to the interval [0..1]
.
HSV is any plain object containing the h
, s
, v
, and optionally a
, properties with the values for s
, v
, and a
, normalized to the interval [0..1]
.
HSI is any plain object containing the h
, s
, i
, and optionally a
, properties with the values for s
, i
, and a
, normalized to the interval [0..1]
.
Culori is written by Dan Burzo and is released under the MIT License.
It builds upon the ideas of two thoroughly documented and time-tested projects: chroma.js by Gregor Aisch and d3-color by Mike Bostock.
You may also want to look at TinyColor by Brian Grinstead, color by Heather Arthur, and color.js by Andrew Brehaut et al.
colori
stacks well against its peers: benchmarks.
FAQs
Unknown package
The npm package culori receives a total of 122,289 weekly downloads. As such, culori popularity was classified as popular.
We found that culori demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
Security News
The JavaScript community has launched the e18e initiative to improve ecosystem performance by cleaning up dependency trees, speeding up critical parts of the ecosystem, and documenting lighter alternatives to established tools.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.