Files
infra-map/src/lib/utils/color.ts
2025-08-17 22:13:40 +02:00

23 lines
501 B
TypeScript

export function hexToRgba(hex: string, alpha = 1) {
// Remove leading # if present
hex = hex.replace(/^#/, '');
// Handle shorthand (#fff → #ffffff)
if (hex.length === 3) {
hex = hex
.split('')
.map((c) => c + c)
.join('');
}
if (hex.length !== 6) {
throw new Error('Invalid HEX color.');
}
const r = parseInt(hex.substring(0, 2), 16);
const g = parseInt(hex.substring(2, 4), 16);
const b = parseInt(hex.substring(4, 6), 16);
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
}