The HISE Color Palette Tool
-
I think a project-wide color palette tool would be a great addition to HISE's UI design toolkit.
I'm envisioning this as a sort of popup window that lets you define different palettes and colors within them with custom naming.
The popup could be anywhere. Maybe in the interface designer? Maybe in the main toolbar?
It would pop out a small window with two columns: left column would be palettes and the right column would be the colors within a selected palette. The colors are just a list like the component colors
with the ability to change the name of the color.
Clicking on the color itself pops out the color picker.
At the top of the right column there'd be an array of buttons where we could save variations of the selected palette to, for quick A/B/C-ing.
The Key Features
Accessibility
The colors are accessible like object properties. Each palette is an object within a class (perhaps ColourPalette or in the Colours class under Colours.Palette) and its colors are its properties. If you have a palette called Background and in it you have 4 colors, you'd access them with e.g. Colours.Palette.Background.Highlight.
Instant Preview
Changing any color in the palette would instantly refresh the entire interface so any components that reference any color from any palette would instantly be repainted.
What Already Exists
A palette panel can be hacked together using a hidden panel and a component property broadcaster, but there are issues with this approach:
- it spams the component list
- it's unintuitive for anyone who's not working with code a lot or is unfamiliar with broadcasters
- you're limited to 4 colors per panel
- making a variations switcher requires additional coding and it all becomes a mess when you have more than 4 colors and more than 2 variations as you juggle between panels