I am making a GUI application that has a
themes folder inside the package. Users can write their own theme files following the format specified in the documentation - it is somewhat similar to GTK theme files.
Now, inside the theme file, the data is mainly about widget colours, fonts, sizes, position and so on - everything is specific to each widget. These data can refer to each other to avoid repetition.
The trouble is: writing data for each and every single widget or element on the screen is cumbersome. Some widgets share the same look, but some have different properties. Example : Close button and Play button. They both are buttons, but look very different.
How is this, from a designers point of view, handled? Should I keep this code-for-each-element pattern, or do something else? I thought about the following:
- Add a "default" theme for each widget type (eg: all buttons)
- If the theme doesn't have a specific widget data (eg: close button), fallback to the aforementioned default.
Is this a viable solution? Is it easy to maintain and establish? I have no experience in this area at all, apart from the designing/drawing part. Also, this software is part of an academic project. My professor and I (and some other faculty) will be doing most of the maintenance.