Themes ::: theme_snap
Maintained by Open LMS LogoOpen LMS Development
Snap’s user-friendly and responsive design removes barriers to online learning, enabling you to create the modern, engaging experience user's expect on the web today. Its intuitive layout is optimised for online learning, focusing on the things that matter - your learning activities and content.
Latest release:
2493 sites
245 fans
Current versions available: 13


Snap is a Moodle theme that makes online learning an enjoyable and intuitive experience for learners and educators.

Snap's user-friendly design removes barriers to online learning, enabling you to create the modern, engaging experience user's expect on the web today. Snap's intuitive layout is optimised for online learning, focusing on the things that matter - your learning activities and content.

Personal menu

Snap’s easy to use navigation gives users an elegant way to perform frequent tasks. All your courses, deadlines, messages and feedback are always one click or tap away to save you time.

Courses with personality

Every course in Snap let's teachers add a cover image to give it a unique personality.

Courses in Snap allow you create individual topics, so learners understand where their focus should be without being confused or overwhelmed by lots of links and options. 

Each topic shows students their progress, which is updated inline with ajax as you progress through the course.

Every activity in Snap shows students the due date, if they have submitted, and if feedback is available - without having to open the activity. 

Teachers are shown how many users have submitted an activity, and if they need to grade any submissions. 

Teacher's workflows for creating and structuring content in their courses are also optimised to save time. With no need to turn editing on, inline resource/activity deleting, the ability to move multiple resources/activities at once, inline topic creation and many other ways to help teachers give learners the best online learning experience.

Working seamlessly across every device - from desktop to mobile, Snap’s responsive Twitter Bootstrap based framework provides a consistent, professional experience for learning whenever and wherever you want to learn.

You can learn more about Snap on our video playlist.

Under the hood:

Like most other Moodle Themes today Snap runs on Bootstrap 4, jQuery, Sass, and inherits from the Boost theme.


Snap is continuously updated, with each major version released 6 months after the Moodle release. If you'd like to test our work in progress it's always available on github!

Questions & Support:

Be kind by asking questions about Snap in the Moodle Themes Forum rather than on this page.

Report bugs about Snap in the Snap theme github.

Open LMS

This plugin is contributed by the Open LMS product team. Open LMS is an education technology company dedicated to bringing excellent online teaching to institutions across the globe. We serve colleges and universities, schools and organizations by supporting the software that educators use to manage and deliver instructional content to learners in virtual classrooms.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4


Open LMS Logo
Open LMS Development (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Thu, Apr 5, 2018, 11:14 PM
    Hey Guy!

    Thanks for this quick answer! smile

    I'm now wondering if we use the theme correctly.
    How do you structure your large courses ?
    Do you divide them into smaller courses that can be loaded entirely ?
    Or is the theme only created with small courses in mind?

    BTW, we want to add interactive content (like games, maps) in inner frames but they get loaded from the start (for instance adding a google map slows everything, and Moodle displays it first even if we are normally on another page). Is there a preferred way to include them?

    When the user is on an activity, he needs to come back to the normal flow of the course (back to the section).
    Is there a reason why no button has been added to the activity to do so?

    @Joseph: Thx, that can do the trick. I'm just surprised to have to use a hack to have this classic UX.

    Thx again for your help wink
  • Thu, Apr 5, 2018, 11:39 PM
    @Guy Thomas, if the original team that built snap including yourself are no longer with the company, I am wondering whether it makes sense to continue using Snap. You and Stuart are the reasons I jumped onto snap. I was a big fan of BCU Adaptable until I saw what you guys did and how you support the theme. Will that level of support and love for the theme still be available going forward?
  • Fri, Apr 6, 2018, 2:16 AM
    @Pat I seem to recall Stuart (ux specialist) saying big courses were bad for the user experience so breaking them up by module would make sense. As for iframe embedded content I recommend you instead use the oembed filter which has a lazy load option.
  • Fri, Apr 6, 2018, 2:18 AM
    @Charles I know that the guys who have made recent commits are capable and talented developers. That's as much as I know.
  • Mon, Apr 9, 2018, 10:29 PM
    @Guy Thomas I am wondering why in the personal menu now the courses are sorted depending on the course end date. Why not start date? That would be more intuitive, since the end date is not necessarily activated per default.
    At our university, the relevant date is the start date and courses are open for several semesters. Maybe this could be a good setting to integrate in the personal menu, so that the site admin can choose accordingly to the school demands.
  • Mon, Apr 16, 2018, 12:30 PM
    Hello! I enabled Google OAuth login. Afterward, I've been encountering this error:
    "Notice: Trying to get property of non-object in /public_html/theme/snap/classes/renderables/login_alternative_methods.php on line 55".
    How can this be solved? Thanks.
  • Mon, Apr 16, 2018, 4:50 PM
    @RA Park. It looks like the master branch on the original Moodlerooms repo has fixed the Moodle 34 issues, so you could consider checking that out - Or you could do a pull against my MOODLE_34_FIXES branch which now also includes a fix for the oauth login error.
  • Thu, Apr 19, 2018, 11:12 AM
    As a huge fan of Snap, I hope the new team can keep up the same spirit of "support and love" @Charles pointed out that makes the magic happen!!

    +1 to Guy's to use the latest commits on Github--the updates on Snap 3.2 and 3.3 both have fixed some formatting bugs (e.g. Help pop-ups show up without getting truncated, Oauth login button shows up cleanly, etc.)....and it is cool to see how actively developed the Snap team is working.....wish I had done this earlier!

    Was wondering if there was a way to make the newer versions of Snap (3.3 and 3.4) behave like 3.2 in terms of being able to reduce the number of course sections--this really helps with larger courses...for example, in Snap 3.2 if you had 10 sections of a course, you could just change the "Number of sections" setting under Course Administration and reveal one at a time as the course progressed to dramatically reduce page load times, especially from the Teacher view which has to load all of the hidden resources / editing tools...or to load sections on demand would be an amazing feature like the OneTopic course format!

    @Pat: Idea for large courses with Snap--per Guy's suggestion, break your course into multiple courses (e.g. Semester 1, Semester 2, or by topic), and then use the fantastic Subcourse plugin to help aggregate grades in a "Master Course" portal--I think you would have to use the metacourse enrollments to help manage the administration of this idea which could work...

    With Snap, it definitely is easier for teachers to build larger courses with the intuitive interface that are more much more robust and feature / resource rich for students, but eventually will run into headaches with page load times and server loads without a way to manage large course sections....

    Guy, Stuart, and David: thank you for your wonderful work on Snap--what you guys built is truly an amazing UX for Moodle, forward thinking, and truly innovative! Our teachers have built some truly fantastic looking and useful courses for their students thanks to you!
  • Thu, Apr 19, 2018, 5:32 PM
    @Joseph, that's really kind of you, thanks!
  • Thu, Apr 19, 2018, 10:46 PM
    Hey guys,
    I've just noticed that clicking on the page displays an outline (rectangle border) around the clicked area.
    Is it for debug purpose?
    How can I deactivate this behavior?
    Thx wink
  • Thu, Apr 19, 2018, 10:51 PM
    @Joseph, thanks for your good advice ;-D
  • Fri, Apr 20, 2018, 1:02 AM
    hi @pat - outlines allow a keyboard only user to navigate a website
  • Mon, Apr 23, 2018, 1:27 PM
    Hi @stuart, thx very much for the information big grin
  • Mon, Apr 23, 2018, 1:45 PM
    Hi everyone!

    I'd like to add navigation buttons to the activities (as it is in the Boost theme).
    Do you know for which reason they have been removed from Snap?

    Are there good documentations for dev people on how the Snap theme works?
    I've setup a debugger to understand where to add my code. But to place the right breakpoints, I still need to have a good overview of the theme architecture.

    Thanks in advance for your help wink
  • Mon, Apr 23, 2018, 5:43 PM
    I also would like to add a progress bar under the main title (in the upper part of the window).
    It would be the same as the course progress bar from the course list.
    Where can I find it in the code ?
Please login to post comments