Easily recolorable Button background textures

This is probably a very basic question, but I have put off asking it for quite a while and don’t seem to be able to figure it out or find the answer myself.

I am losing a lot of time on my current project doing UI button/panel background textures. I’m not trying to do anything too complicated, just a nice little gradient to give a 3D effect. They are getting added to the Image component of UI objects and I’m 9 slicing them.

My problem is that whenever I want to have a button in a color that is different from a color I have already used, I end up having to go back to my image editing program and create a brand new texture for each color.

The root of the problem is that adjusting the hue in Unity is not working the same as adjusting the hue in my image editing program.

Here is one of my original background images.

…and here it is after I perform a color change from within unity.

You can see that the results are not that great. The white borders in the original got shifted to red. My image editing software doesn’t behave that way. If I do a hue change, the whites and blacks don’t get modified.

Any idea what I am doing wrong? My goal is to have a single button texture that I can recolor from within Unity for all the buttons in my project. Is this doable?

Finally managed to locate some info about the behavior. It’s happening because Unity does a multiplicative blend by default with it’s color selection dialog. This makes it very easy to recolor a template texture in white to whatever color you want - it makes it much harder though, to have a texture with white highlights on it that get maintained or to take a colored texture and change it’s color to white in Unity.

Seems that the solution is to create a material (right now for my UI textures, I don’t need to select a material) and then use a custom shader, but to be honest it feels easier at the moment just to keep doing my button/panel recoloring in my graphics program. I don’t like to mess with shaders too much because a lot of the standard ones don’t even work on some of the cheaper mobile devices that I am targeting.