@RandyHayes
Still thinking this through but this could be an option. Thoughts?
Update the default values in the Themes.json file like I did here for the button. I probably need to do a little thinking around the naming convention but this works for now.

Then I build an component called 'sample_1' or 'sampletest' or 'sampleSample' or anything other than 'sample' to prevent naming collisions because I'm going to want to rename my instance 'sample' in this case.
Then in my component I have an output property of BTNColor. in my example below I used a text input but it could be any control capable of passing a color value



Just need to think through how to set up the 'panels' for each control in the component.
Is it a single table with options for each type of property? At least for those controls that are not direct text input?
AND figure out the best way to save those settings since it all goes away if I close/refresh the app.
I'm guessing this has to be saved to its own database. Maybe even include a unique identifier for the app so this the same datasource can be used for other app settings? Not really sure how to structure this yet. I'd gladly welcome some input.