Hello NopCommerce team,
I think great job is done and my appreciation and thanks for that.
In any case none systems are ideal, and there are always area to improve.
I would like to suggest you to implement Theme inheritance.
Another words it could be a base Themes which contains base set of theme content, and basing on that create new themes.
The root cause for that is that razor Views have very heavy influence on the system,
and by reworking them we can build pretty different html structure, layouts and performance.
I find it very reasonable to make different levels of customization:
- High level (changes in css / img / simple views)
- Deep level (changes views / js)
By using Theme inheritance it's possible to create a deep preset of customization, and use it as a base for many other Themes with high level customization (css/img).
Technical info:
- Add Param "BaseTheme" to theme.config, and responsible class;
- Make appropriate changes in ViewLocationFormats, AreaViewLocationFormats, MasterLocationFormats, AreaMasterLocationFormats.
- Maybe Theme details should be provided as a set of configurations to ThemeableVirtualPathProviderViewEngine.GetPath, instead of just theme name param.
- ... The other changes which I didn't discover yet.
I can do it by myself, but it would be much better to have in Nop.Framework and available for anyone.
Thank you, and hope it can be helpful for community.
PS: Sorry if this topic was raised somewhere and I didn't notice.