(hex: string, hueOff: number)
| 116 | * Adds to the hue channel of HSL, wrapping at 360. |
| 117 | */ |
| 118 | export function applyHueOff(hex: string, hueOff: number): string { |
| 119 | const { r, g, b } = hexToRgb(hex) |
| 120 | const { h, s, l } = rgbToHsl(r, g, b) |
| 121 | const offsetDeg = hueOff / 60000 |
| 122 | const newH = (((h + offsetDeg) % 360) + 360) % 360 |
| 123 | const rgb = hslToRgb(newH, s, l) |
| 124 | return rgbToHex(rgb.r, rgb.g, rgb.b) |
| 125 | } |
| 126 | |
| 127 | /** |
| 128 | * Apply saturation offset (additive). |
no test coverage detected