Open mradamcox opened 3 years ago
This could probably be implemented via Sass which should be available in arches soon re: #7396
@robgaston This ticket describes more than just color/font themes but also content such as changing text. @mradamcox I think the suggestion of having a default theme for Arches and a way to register new themes is pretty interesting. In combination with sass, which Rob has pointed out is coming soon for Arches, it would be easier to support customizing Arches' landing page and meet W3C accessibility guidelines.
@dwuthrich agreed. From what I understand about Sass, it would help the implementation of this idea, but would still need to be populated by user-defined, backend-stored variables. The idea would also have implications for internationalization, so that's something to keep in mind as well.
Is your feature request related to a problem? Please describe. Currently, for the most basic branding changes to be made to a new Arches installation, like changing the background images or introductory text on the landing page, a developer must directly edit html/css files in the project files. Reducing the complexity of making these customizations would be beneficial to the entire community.
Describe the solution you'd like Front page content should be (heavily) refactored to be built from a dynamic theming system that would allow users to configure the contents through a GUI that admins can access.
One example of functionality like this in a Django context is GeoNode's "simple theming", where a separate app called themes holds a models that defines different aspects of the theme, like intro text, etc. Following this strategy allows theme changes to be made by any staff member who can access the Django admin panel. Also, multiple themes can be created and then enabled/disabled easily, or even shared.
Alternative Approach
The existing "system settings" in Arches could also be expanded to drive much or all of what I'm describing here. I recall there being a number of settings in that resource graph which are not used, so combining this idea with a bit of a cleanup (and better documentation) of that graph may be a good direction to go.
Additional context This is specifically a "simple" theme system, and wouldn't be a replacement for the package/project paradigm. It would fit within the Arches structure by storing the themes as fixtures (json files) in packages and loading them on package load. Developers would still make advanced edits to project files. It would just add easy customization and branding to very simple Arches installations.