chromatism
Version:
A simple set of utility functions for colours.
20 lines (18 loc) • 531 B
JavaScript
export default {
hsl: value => {
const normalized = Object.assign({}, value, {
h: value.h / 360,
s: value.s / 100,
v: value.v / 100
})
let h = normalized.h
let s
if ((2 - normalized.s) * normalized.v < 1) {
s = normalized.s * normalized.v / ((2 - normalized.s) * normalized.v)
} else {
s = normalized.s * normalized.v / (2 - (2 - normalized.s) * normalized.v)
}
let l = ((2 - normalized.s) * normalized.v) / 2
return { h: h * 360, s: s * 100, l: l * 100 }
}
}