Considering the ThemeProvider component takes in a theme prop, this opens up possibilities where we could potentially allow Developers to create custom themes.
Problem and Opportunity Statement
Easier adoption: A Developer may choose to NOT use the Ursa Design System due to a colour scheme reason. That seems like a minor reason for abandoning an entire design system but colours may mean a lot for the app developer, especially if it is a well established brand. Instead of choosing not to use the Ursa design system because of brand colour reasons and choosing an external UI library/building UI components from scratch with custom colours, the developer could now choose to use the Ursa system and simply add the necessary custom theme and let the design system's functionality core UI and functionality do the heavy lifting.
Fun to use: It will open a whole new fun way for developers to use Ursa with different colour palettes. This can help maintain a similar identity but yet showing a distinct difference, for e.g. if the same developer is building two different apps with the Ursa design system.
Consideration
Scope: The entire theme or a specific area, like colours. I think if at all any customizations are to be allowed for a opinionated system like the Ursa Design System, it should retain it's identity. Hence, anything other than colours, would make it lose its identity. However, colour customizations may be a good idea.
Feasibility: Will it be feasible for Zenius to allow the override to the default brand colours? An use case to consider is Shopify's Polaris design system and how any colour changes to the UI components are restricted and preset by Shopify.
Implementation: What would be the easiest way to implement this about without affecting developer and user experience and covering customization benefits?
Proposal
Considering the
ThemeProvider
component takes in atheme
prop, this opens up possibilities where we could potentially allow Developers to create custom themes.Problem and Opportunity Statement
Consideration