JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7302
  • Score
    100M100P100Q122368F
  • License ISC

Bidirectional conversions between different colors format like RGB, HSL, HSV and HEX

Package Exports

  • colorsys

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (colorsys) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

colorsys

CircleCI npm version

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

<script src="https://unpkg.com/colorsys@1.0.11/colorsys.js"></script>

example

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

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 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
  • Twitter

This repo is shared with ❤️ from Netbeast. This package powers Yeti Smart Home and is used in production.

works with yeti