UNPKG

string-to-tailwind-color

Version:

Generates a random but deterministic Tailwind CSS color and shade from a string

1 lines 1.97 kB
{"mappings":"AAEA,qBACI,KAAK,GACL,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,MAAM,GACN,KAAK,GACL,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AA2BZ,qBACI,EAAE,GACF,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;ACvDR,+BACE,KAAK,SAAS,aAAa,GAAG,aAAa,EAC3C,KAAK,SAAS,aAAa,GAAG,aAAa;IAE3C,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,OAAO,MAAM,wBACX,KAAK,SAAS,aAAa,GAAG,aAAa,EAC3C,KAAK,SAAS,aAAa,GAAG,aAAa,EAE3C,KAAK,MAAM,EACX,UAAS,qBAAqB,KAAK,EAAE,KAAK,CAAM,KAC/C,GAAG,KAAK,IAAI,KAAK,EAgBnB,CAAC","sources":["src/src/tailwind.ts","src/src/main.ts","src/main.ts"],"sourcesContent":[null,null,"import {\n type TailwindColor,\n type TailwindShade,\n defaultColors,\n defaultShades,\n} from './tailwind';\n\ninterface StringToColorOptions<\n Color extends TailwindColor = TailwindColor,\n Shade extends TailwindShade = TailwindShade,\n> {\n colors?: readonly Color[];\n shades?: readonly Shade[];\n hashOffset?: number;\n}\n\nexport const stringToTailwindColor = <\n Color extends TailwindColor = TailwindColor,\n Shade extends TailwindShade = TailwindShade,\n>(\n str: string,\n options: StringToColorOptions<Color, Shade> = {},\n): `${Color}-${Shade}` => {\n const colors = (options.colors ?? defaultColors) as readonly Color[];\n const shades = (options.shades ?? defaultShades) as readonly Shade[];\n\n const colorPool: `${Color}-${Shade}`[] = [];\n for (const color of colors) {\n for (const shade of shades) {\n colorPool.push(`${color}-${shade}` as `${Color}-${Shade}`);\n }\n }\n\n const stringHash =\n Array.from(str).reduce((acc, char) => acc + char.charCodeAt(0), 0) +\n (options.hashOffset || 0);\n\n return colorPool[stringHash % colorPool.length];\n};\n"],"names":[],"version":3,"file":"main.d.ts.map"}