Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/netbeast/colorsys
:art: Minimalistic color converter for RGB, HSV, HSL, CMYK, HEX and CSS strings
https://github.com/netbeast/colorsys
cmyk color css-string hex hsv javascript library npm random rgb
Last synced: about 1 month ago
JSON representation
:art: Minimalistic color converter for RGB, HSV, HSL, CMYK, HEX and CSS strings
- Host: GitHub
- URL: https://github.com/netbeast/colorsys
- Owner: netbeast
- License: mit
- Created: 2016-02-12T09:38:08.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-04-17T01:20:52.000Z (over 1 year ago)
- Last Synced: 2024-05-22T09:04:51.683Z (7 months ago)
- Topics: cmyk, color, css-string, hex, hsv, javascript, library, npm, random, rgb
- Language: JavaScript
- Homepage: http://getyeti.co
- Size: 870 KB
- Stars: 57
- Watchers: 6
- Forks: 16
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# colorsys
[![CircleCI](https://circleci.com/gh/netbeast/colorsys.svg?style=svg)](https://circleci.com/gh/netbeast/colorsys)
![npm version](https://badge.fury.io/js/colorsys.svg)**Colorsys** is a simple javascript color conversion library that allows bidirectional color conversion.
**Lightweight**, **immutable**. With support for RGB, HEX, HSV, HSL and CMYK and CSS strings.## install
**With npm**
```
npm install colorsys
```**Load on browser or copy paste into your code**
``````
## example
```javascript
var colorsys = require('colorsys')
const hsl = colorsys.parseCss('hsl(0, 0%, 100%)') // { h: 0, s: 0, l: 100 }
colorsys.hsl2Hex(hsl) // '#ffffff'
const hsv = colorsys.rgb_to_hsv({r: 255, g: 255, b: 255 })
colorsys.stringify(hsv) // 'hsv(0, 0%, 100%)'
// Parsing an hex string will result in a RGB object!
colorsys.parseCss('#ff00ff') // { r: 255, g: 0, b: 255 }
```For more examples please visit the [tests](test/test.js)
## API
For any method the input arguments can be an object `(r: 50, g: 100, b: 0}` or a set of integers `50, 100, 0`. You have aliases in both snake_case (`hex_to_hsl`) or `rgb2Hex`, `hsv2Rgb` form.* `colorsys.parseCss(color: string)` will parse a color string in an object with the same keys.
* `colorsys.stringify(color: Object)` will output a valid css string.
* `colorsys.rgb_to_hsl({ r: 255, g: 255, b: 255 }) => { h: 0 , s: 0 , l: 100 }`
* `colorsys.rgb_to_hsv({ r: 255, g: 255, b: 255 }) => { h: 0 , s: 0 , v: 100 }`Try with any combination. Look at the [source](colorsys.js) to double check!
* `colorsys.hslToRgb`
* `colorsys.hsvToRgb`
* `colorsys.rgbToHex`
* `colorsys.hexToRgb`
* `colorsys.hsvToHex`
* `colorsys.hexToHsv`
* `colorsys.hslToHex`
* `colorsys.hexToHsl`
* `colorsys.rgb2cmyk`
* `colorsys.cmyk2rgb`Other methods:
* Generate a random hex color: `colorsys.random()`
* Rotate a color hue: `colorsys.rotateHue(120, 120)` will output `240`.
You can also use HSL or HSV objects as `rotateHue(hsv, 120)` will output
an object containing `{h: 240}`.There are some formats missing like `YIQ`, `HWB`, `ansii` and `ansi16`. Please help us to complete this library making a pull request.
## Contact
* Mail us: staff [at] netbeast.co
* Report a bug or enter discussion at [issues](https://github.com/netbeast/colorsys/issues)
* [Twitter](https://twitter.com/YetiSmartHome)This repo is shared with :heart: from Netbeast. This package powers [Yeti Smart Home](https://getyeti.co) and is used in production.