That's what LC profiles are meant to do. I haven't used them much, but the idea is to set custom properties on each control and then you can change the profile so that it loads automatically on startup or openstack or wherever you decide. Check out "profiles" in the User Guide.My goal would be a design that automatically adapts -- I know that this is impossible -- has the same behavior for all similar components, can change a theme "on the fly"
I have created Android apps that follow Material Design (I do like Material very much) but since my app was only built for Android, I didn't need to use profiles. In the case of disabled buttons (and others) I actually used Bogs' suggestion and created graphics that were used as buttons. The script of those graphics checked the foregroundColor and if it was the disabled color, it exited the mouseUp without doing anything. This could be implemented as a behavior if you have many controls that need it.
I stored the enabled color and the disabled color as constants in the behavior script. This would be easy to adjust for use on any OS. Instead of a constant, store the color values in script locals and assign values as needed to match the OS you are targeting.
BTW, while my original handler apparently doesn't work on Windows, it may stilll work on Android. Try it on a real device and see.