It's useful to break a theme into a number of parts.
Each theme has an overall visual style. Metrici themes are based on the Bootstrap 3 framework, and you can replace the Bootstrap CSS file. You can also add additional CSS and JavaScript to manage the visual style of your theme.
A theme can be branded to a particular customer. You can set the name of the application, logos, and footer.
A theme may also require specific components that add functionality to the UI, which can be CSS, JavaScript, or a mix of both. These are typically required to support products.
The theme builder splits development of themes into these three parts - style, brand, components - plus a theme assembler for putting it all together into the final theme.