Radix UI colors?
There are many pros of Radix color system. In my humble opinion it is the best system which would be implemented for having dark/light mode and doing theming stuff.
Radix UI colors are made out of 12 colors and 1 color which is special for text on main palette color. Each color is made for in semantic fashion like background, borders, solid colors and text colors. So they need to be applied just in correct fashion.
Benefit of doing this is that you could do full color swap of any palette anywhere while having pretty safe contrast.
This could be used to theme whole app or do to local partial theming of the certain part.
Anri MaglakelidzeΒ You can create your own color schema right from color customization?
Shahjahan JewelΒ
Customization looks nice, but what I am suggesting you could make slot based theme. And than user you would apply Radix palette to override slots.
So once is made by using these slots someone could set any color from whole Radix UI colors system so he gets like 30 themes without need of doing much on your side for each theme.
The thing with Radix is that colors are layered in semantic usage, so if you switch palette another would override these slots and look great.
Example:
You could make 10 different app skins, they would take one or two colors palettes as slot inputs.
User picks 1 or 2 colors depending on the skin and by doing this you have 300+ themes configurable and looking great in few clicks, hover, focus everything looks good.
Renato ΔorlukaΒ absolutely great suggestion.