function isColorString(str) {
const hex = /^#([A-Fa-f0-9]{3,4}){1,2}$/;
const rgb = /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/i;
const rgba = /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(?:\.\d+)?)\)$/i;
const hsl = /^hsl\((\d{1,3}),\s*([\d.]+)%,\s*([\d.]+)%\)$/i;
const hsla = /^hsla\((\d{1,3}),\s*([\d.]+)%,\s*([\d.]+)%,\s*(\d*(?:\.\d+)?)\)$/i;
const namedColors = [
"red", "green", "blue", "cyan", "magenta", "yellow", "black", "white", "gray", "grey",
"purple", "lime", "teal", "aqua", "maroon", "navy", "silver", "olive", "fuchsia", "orange"
];
return hex.test(str) || rgb.test(str) || rgba.test(str) || hsl.test(str) || hsla.test(str) || namedColors.includes(str.toLowerCase());
}