Switch branches/tags
Nothing to show
Find file Copy path
c3bc522 Nov 30, 2018
1 contributor

Users who have contributed to this file

64 lines (39 sloc) 1.58 KB



This package provides an Elisp implementation of the HSLUV colorspace conversions as created by Alexei Boronine (@boronine), and documented on

HSLuv is a human-friendly alternative to HSL.

CIELUV is a color space designed for perceptual uniformity based on human experiments. When accessed by polar coordinates, it becomes functionally similar to HSL with a single problem: its chroma component doesn't fit into a specific range.

HSLuv extends CIELUV with a new saturation component that allows you to span all the available chroma as a neat percentage.

The reference implementation is written in Haxe and released under the MIT license. It can be found at The math is available under the public domain.


The recommended way is to use MELPA. If either is in your package-archives, do

M-x package-install RET hsluv RET

or you could use something like use-package:

(use-package hsluv)

No further configuration is needed.


The following functions provide the conversions from RGB to/from HSLUV and HPLUV:

(hsluv-hsluv-to-rgb (list H S Luv))

(hsluv-hpluv-to-rgb (list H P Luv))

(hsluv-rgb-to-hsluv (list R G B))

(hsluv-rgb-to-hpluv (list R G B))


If you want to run the tests, checkout this repository. Then, on a command-line near you, do:

$ make clean test

which will run the tests defined in test/hsluv-test.el.

Test results will be collected in the file test-results.log