This is what the table looks like
The leftmost column is an Image type with the bare minimum SVG code. [Encoded Hex] is a virtual column that just uses ENCODEURL() on a column with the hash-hex colour value.
CONCATENATE("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%' style='background-color:", [Encoded hex], "'>
</svg>")
An extract from where it’s used elsewhere. This is inside
<circle cx='0' cy='0' r='95' fill=""",
SELECT(Colour hex codes[Encoded hex], ([Colour ID] = "Purple highlight"), TRUE),
"""/>
I’m never going to have a million colours on the palette table but I don’t know if this is the sort of thing that can inadvertently cripple a program. If the impact is something only a computer would notice then I’m fine with that. Even if it looks a bit unwieldy it’s way easier to change colours and stick to a consistent palette. Open to suggestions if there’s a more efficient way to do the same thing, of course.