Themes and color are set in the layout mode. I think there might be a way to make a layout's background be a user defined color, from a prescribed palate of colors, but it would be crude to do. Logo is a different issue. Set the logo in a global field that can be added by the user. Then use that Container Field in all layouts where you want the logo. I do this in my Runtimes.
Great! Thanks for your feedback. I will look into the logo method
Some layout objects, such as buttons and fields can use conditional formatting to specify a fill and/or text color. These conditional formatting expressions could be controlled by a "theme" value set in a global field.
And a calculation field can have a container result type, but use a case function to reference the value of different global container fields or repetitions of a global container field to display different color rectangles loaded into those container fields. This calculation field can be formatted so that the rectangle fills the field edge to edge to provide a colored background for other layout objects.
And you can also "stack" several different layout objects on top of each other and use "hide object when" expressions that access your global theme field to hide all but one of them.
I wouldn't do this to provide the user with 1,000 different theme options, but if you wanted to supply a half dozen options, it would probably work without too much trouble.
Thanks for your feedback. I will have to give it a try and see what results i come out with. I am however in the long term looking at deploying it to a large number of organisations (approximately 60-100) which have their own specific colour. So, eventually my solution does need the ability for a user defined Hex colour. Thanks for your help though, i am definitely going to try your method out.