mirror of
https://github.com/keven1024/015.git
synced 2026-05-26 07:08:02 +00:00
18 lines
616 B
TypeScript
18 lines
616 B
TypeScript
function generateRandomColors(count: number, minHueDiff = 30) {
|
|
const colors: { h: number; s: number; l: number }[] = []
|
|
for (let i = 0; i < count; i++) {
|
|
let hue: number,
|
|
attempts = 0
|
|
const { h: previousHue } = colors?.[colors.length - 1] ?? {}
|
|
do {
|
|
hue = Math.random() * 360
|
|
attempts++
|
|
} while (attempts < 100 && previousHue !== undefined && Math.abs(previousHue - hue) < minHueDiff)
|
|
|
|
colors.push({ h: hue, s: 70, l: 75 })
|
|
}
|
|
return colors.map((c) => `hsl(${c.h}, ${c.s}%, ${c.l}%)`)
|
|
}
|
|
|
|
export default generateRandomColors
|