Introduction
Imagine a scenario where you, as a developer, start developing your new groundbreaking app with a UI interface, either for your customer for whom you have already created multiple apps or just for your own company… So, what’s the first thing you do?
If the organization follows any respected IT development process, then probably the first thing the developer will check is if the solution can use any reusable UI assets. This can include reusable controls, page designs, templates and most importantly themes. So, to speak, themes are one of the most basic building blocks of any custom-developed solution (even many customized COTS solutions too). So, it’s quite natural to think that any technology which prides itself on being (or at least in a part) a Front-end technology will have decent support for themes.
This point becomes exponentially important in enterprise scenarios where the application is being built by a Non-IT or Citizen developer since they rely heavily on such out-of-box features to provide that professional/enterprise grade look and feel. So, it’s no coincidence that low-code & even no-code platforms like Mendix and others have such features built out-of-the-box.
So, what’s up in Canvas Apps World?
Power Apps, especially Canvas apps also caters to such low-code/no-code audiences. But unfortunately, the theming feature still seems to be lacking. I’m not saying that this feature cannot be implemented in Power Apps and developers have been creating libraries with pre-added themes since 2019, but there is no out-of-the-box production-ready theming solution available for users. The out-of–the-box ‘Theme’ feature is still in preview & only provides customization on two fronts, namely Seed colour and font. Since this is still a ‘review’ feature and a part of ‘modern controls’ only, any changes to the applied font only apply to the ‘modern controls’ only a few of them are generally available. This leaves bulk of the solution created in Power apps (especially canvas app) indifferent to the theme settings. This lack of customization has led many users to come up with their own version of theming solutions. Some of these solutions, if used incorrectly, can lead to bulky & lethargic apps and, in some cases app with large issue lists. So, what are the major challenges?
There are currently seven major challenges when it comes to themes in Canvas Apps:
- Barebone Customization: Power Apps theming offers some colour and font customization, but users often find it insufficient for achieving their desired look. Certain app elements can’t be themed, leading to challenges in achieving precise aesthetics.
- Implementation Inconsistencies: Users encounter inconsistencies in theme application across different app screens or components. This can disrupt visual coherence and create a disjointed user experience.
- Compatibility Issues: Power Apps theming may not seamlessly integrate with other platform features or components. This is especially true for apps developed using traditional controls.
- Performance Challenges: Any complex theme solution involves adding decent amount of static code base. This can impact Power Apps performance, particularly in apps with numerous screens or intricate design elements.
So, what are the solutions…
There are no out-of-box solutions available at this moment, though Microsoft is trying to enhance this part of their offering and murmurs about additional features is quite common among the developer community, but as of now, nothing concrete is available. This leaves us with the theming options which have been used for the last 3 to 4 years. These options include:
- Defining various Setters in OnStart() or other Initialization locations and then using them in formulas including
- Default Control Styles
- Fonts
- Icons &
- Colours
- Using Branding Template App
- Quiet useful solution with some lovely ideas available at https://www.iammancat.dev/2022/01/power-apps-branding-template-v3/
Off course, I’m quite sure there would be some other wonderful solutions which the community has created that I have not had a pleasure of trying. (happy to hear your recommendations in the comments section of this article)
Final Thoughts
Canvas Apps have come a long way since their humble beginnings and things do take time get setup properly (e.g., Power Platform CoE Toolkit). But thanks to the ever-energetic Canvas Appers & the drive shown by Microsoft to take in customer feedback on M365 products, it does give us a glimmer of hope that this theming feature will also be groomed, nurtured and brought to the same level of enterprise readiness as other features.
As Christopher Reeve said,” Once you choose hope, anything’s possible.”