Themes allow separating the controls design details from the development.
The task of defining how the controls are designed (their color, font, what they look like, etc.) is usually delegated to designers. So, when they provide that information you have to specify it inside a Theme object.
Each Theme is composed of several classes (one for each type of control). Classes allow defining some aspects only once (by setting properties), in order to apply them to many controls (of the same type) at the same time. Then, when deciding to change the appearance of one type of control, you only have to set it in a single place.
By default, every Knowledge Base offers some Themes automatically created. For example, a Theme for Web named 'Carmine' is included in every KB and it is used by default when generating Web applications. This Theme is referenced in the Default Theme property at version level. Besides, every Web Panel object and Transaction object contains the Theme property (which by default inherits the Theme assigned for the Default Theme property). Of course, you are able to change the values of all these properties by other Themes defined in your KB.
The Theme objects are offered under the 'Themes' node.
Learn about Themes for Smart Devices.
You can create a new Theme object by right-clicking on the 'Themes' node or by selecting in the main GeneXus menu File > New Object. Both, Themes for Web and Themes for Smart Devices are offered to be created through those ways.
When working with Themes for Web, after changing class properties, you can view inside an HTML Browser preview window how the controls look like:
Theme and classes
Setting responsiveness with the Theme classes
Overlapping through classes