How to define a color palette at the application level?

Hi!

Godot has a color picker. Although the flexibility of picking any color sounds great, from a design perspective, my team would rather have a palette configured at the application level, that would be accessible everywhere in the editor where there’s a color picker.

I notice the functionality of adding colors to a palette with the plus button at the bottom of the color picker, but that doesn’t actually do what we want.

Here’s the gist of what we want:

  1. To give colors abstract names, like “background”, “foreground”, “brandPrimary”, brandSecondary", “text”, “dimText”, “emphasisText” and so on.

  2. To define that once in the application and have that palette available everywhere in the Editor, perhaps instead of the colorpicker, perhaps next to in, perhaps in it.

  3. If we change the value of one of those colors in this single-source-of-truth app-level-defined palette, everywhere in the app where that color is used would be updated.

  4. We want to be able to define one or more palettes, in such a way that we could, with one variable, change the entire color scheme of the UI.

  5. To have the entire palette tracked by Git (as it stands right now, git doesn’t notice any change in the repository when we add colors to a palette in the color picker, with that plus button)

We see that something like this is implemented in the Godot editor itself, so the answer is there. We do intend to dive into the source code in the coming months, but I’d love to hear from the community about how this kind of problem is addressed.

Thank you for sharing any thoughts you might have on the matter.

ive been reading a github post, relating to a proposal for global-plugins.
https://github.com/godotengine/godot-proposals/issues/831

but, by the sound if it, its notsomething they are keen on doing themselves.
there is a color pallet manager on the asset library.
image
according to the notes and the demo vid. pallets are selectable and saved as resources so they can be checked into a source control.

theres the demo vid
https://streamable.com/gw4n99
sorry, cant help much more, dont think theres any plans for a native deep dive into the innerworkings of godot. but there are resources online that do go into the native side of things, way over my head tho :frowning:

did you manage to find a workaround or a solution?

if you could let me know how you got on, if you found a workaround or not please

Privacy & Terms