(r: number, g: number, b: number)
| 28 | } |
| 29 | |
| 30 | export function rgbToHex(r: number, g: number, b: number): HexColor { |
| 31 | const toHex = (v: number) => { |
| 32 | const clamped = clamp(v, 0, 1) |
| 33 | const int = Math.round(clamped * 255) |
| 34 | return int.toString(16).padStart(2, "0") |
| 35 | } |
| 36 | return `#${toHex(r)}${toHex(g)}${toHex(b)}` |
| 37 | } |
| 38 | |
| 39 | function linearToSrgb(c: number): number { |
| 40 | if (c <= 0.0031308) return c * 12.92 |
no test coverage detected