Changing the appearance of Open edX

Installing a custom theme

Comprehensive theming is enabled by default, but only the default theme is compiled. Indigo is a better, ready-to-run theme that you can start using today.

To compile your own theme, add it to the env/build/openedx/themes/ folder:

git clone https://github.com/me/myopenedxtheme.git \
  "$(tutor config printroot)/env/build/openedx/themes/myopenedxtheme"

The themes folder should have the following structure:

openedx/themes/
    mycustomtheme1/
        cms/
            ...
        lms/
            ...
    mycustomtheme2/
        ...

Then you must rebuild the openedx Docker image:

tutor images build openedx

Finally, you should enable your theme with the settheme command.

Developing a new theme

With Tutor, it’s pretty easy to develop your own themes. Start by placing your files inside the env/build/openedx/themes directory. For instance, you could start from the edx.org theme present inside the edx-platform repository:

cp -r /path/to/edx-platform/themes/edx.org "$(tutor config printroot)/env/build/openedx/themes/"

Warning

You should not create a soft link here. If you do, it will trigger a Theme not found in any of the themes dirs error. This is because soft links are not properly resolved from inside docker containers.

Then, run a local webserver:

tutor dev start lms

The LMS can then be accessed at http://local.openedx.io:8000. You will then have to enable that theme:

tutor dev do settheme mythemename

Watch the themes folders for changes (in a different terminal):

tutor dev run watchthemes

Make changes to some of the files inside the theme directory: the theme assets should be automatically recompiled and visible at http://local.openedx.io:8000.