Developing a Custom Moodle Theme

Developing a Custom Moodle Theme

by Ákos Filakovszky -
Number of replies: 1
Dear Moodle Community,

Until now, we have been working with SCSS adjustments to the Boost Theme that heavily effect its appearance. We also use JavaScript to add additional elements and functionality to e.g. the Courses. Now, we are considering to pack all of these adjustments into a Theme and divert from the Bootstrap based appearance, as we have to "overwrite" numerous aspects of it.

In the course of our discussions, the following questions have arisen that we would be very happy to hear your thoughts on:
  1. From your experience, what's the best way to go about developing a Moodle Theme? Anything important we have to look out for/keep in mind? Anything important that you have learned in the process of doing so?
  2. Is this generally a rather elaborate/tedious undertaking? Is it worth the effort (e.g. compared to just adjusting the CSS and adding elements through JavaScript)?
  3. What do you consider as the advantages (e.g. in contrast to custom CSS and JavaScript) of developing an own Theme? If you have already done so, why did you/your organisation decide to do it?
  4. How much resources are required to adapt the Theme to a new version of Moodle? (Update resilience?)
  5. Does it make sense to start development before Moodle 4.0 is shipped?
  6. Have you tried developing/Do you know of any efforts of developing a dynamic Moodle Frontend? E.g. based on Angular? In this regard, is there something one could consider as the "Moodle API"?

I am very interested in your experience and opinion and looking forward to your comments.

Thanks and best regards,

Akos

Average of ratings: -
In reply to Ákos Filakovszky

Re: Developing a Custom Moodle Theme

by Gareth J Barnard -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers

Dear Ákos,

My answers:

  1. Having the skills of a software engineer in terms of not only being able to program in the languages used but to read and understand the supporting developer documentation, along with understanding of OO principles and having configuration management, testing and debugging skills.
  2. Depends on what you're trying to achieve.
  3. More control / because I wanted to.
  4. Depends on the changes documented in /theme/upgrade.txt and any other API changes.
  5. Yes.
  6. No (unless you think that PHP and JavaScript are not 'dynamic' from your questions' perspective).  The Moodle API's are the "Moodle API".

Kind regards,

Gareth