A semantic color management system for Unity which aims to be scalable, flexible, extensible and practical to use.

What is semantic color management?

Basically, you define a set of meaningful identifiers for colors, representing where/how each color is used (e.g. “buttonBackground”), and not the colors themselves (e.g. “darkBrown”).

Then, elsewhere, you map each idenfier to an actual color value. The elements where colors are to be applied never directly refer to actual, specific colors, but only to semantic color ids.

This decoupling allows to quickly and flawlessly change colors to multiple elements in a centralized way, and to easily implement some form of “color skinning” by applying different id -> color mappings.

Palettes, Palette Providers and Colorers

Our system is composed by three core elements:

  • Palette: a named set of id -> color mappings. It is a “data” element, usually persistent.
  • Palette provider: an active element, living in a Unity scene, that acts as a broker between palettes and colorers, pushing color updates to any relevant colorers.
  • Colorer: an active element that contains the logic to apply one or more colors to a scene component (UI elements, 3D models materials and more). A colorer must be connected to a palette provider, from which it retrieves colors for the color identifiers specified in its configuration.

Ready to use Colorers for Unity components using color properties (UI elements, Materials etc) are included. That said, programmers can easily extend the system with additional custom colorers (and providers).


Basic usage example

What do I get?

The package includes the complete source code of:

  • the SemanticColorPalette system
  • the SemanticColorPalette.RuntimeManagerUI, ready to customize and include in your projects, to access the core functionalities of the system at runtime, in builds.
  • the SemanticColorPalette Demo, that you can see in the first video and try as WebGL build.

Moreover, extensive documentation is provided, including a user manual and an API reference useful to customize and extend the system.

Buy it from the Asset store and start improving your color management workflow today!