I am currently preparing for the courses I teach in term 2 and one of my objectives this year is to create course websites1 with course material that the students can access but that can also be made available publicly in the hope that they might be useful to someone2. It is also an opportunity to move away from a workflow that discourages improvement and makes editing material cumbersome. Let’s back up to see why things are as bad as they are and how I walked myself into a corner.
The problem: the slide tech stack from hell
A few years ago, in a bid to improve student engagement in the classroom, I started using Mentimeter to ask in-class questions from my students. This is all well and good, but Mentimeter has limited options when it comes to slide design. Using it means giving up a lot of control. At the time I first started using Mentimeter for the classroom (2020), my experiment with linking mentimeter questions from within Powerpoint were disappointing and I could not get mentimeter questions to behave how I was hoping them to within powerpoint. Then I made a terrible mistake. Having concluded that making slides directly on Mentimeter was as attractive as playing a level 1 character in D&D,3 and that embedding Mentimeter questions directly into Powerpoint exposed me to technical failures in the classroom, I decided to make my slides in Powerpoint as usual, upload them to Mentimeter as images (you do not get a choice), and interleave Mentimeter questions in between these slides. It worked. Kind of. Until it did not. Things did not break suddenly, rather, it was a slow rot that at first went unnoticed.
The obvious problem is that once your slides are converted into images, you cannot edit them easily. You have to go back to Powerpoint, make the changes, and re-upload them to Mentimeter (who turns them into images in the process). Then you have to move the Mentimeter questions back to where they are supposed to go. Needless to say, this is way more faff than I can bear, and it means that for small things, like a typo, I would not go through the process to fix it. For larger changes, I would eventually get around to them, but it would make me grumpy. In short, it made it too hard to iterate on the slides.
This would just be unfortunate if I was not so unable to let go and therefore not getting increasingly frustrated by my slides over time. In addition, I am old enough to know that consistent small improvements is the only way things get better.4
The solution: revealjs slides
Fast forward to now, and after years of frustration, I decided to take the slides out of Mentimeter. It was time to think about what technology to use to avoid being in the same place in 5 years or so.5 Enters Quarto. I use quarto all the time to write documents, and while working on research to document my work from cleaning the data to reporting. And I used R Markdown before that. Quarto has a revealjs format for slides, and the more I experimented with it, the more I thought that it would be suitable.
Of course, I could not live with the defaults.6789 I had the idea after reading the docs that using the vertical navigation would be a good idea to be able to have a main narrative and arbitrary numbers of extra slides drilling down into specific details10. So I poked around, and also asked silly questions (see below), which lead me to figure out that I could probably get what I was hoping to achieve with a bit of scss. With the help of chatGPT, I managed to put together a new style for section slides that gives them the appearance of content slides.

The style exploits the fact that revealjs organises content slides as vertical stacks under section slides that are organised horizontally. You can visualise this by pressing oo. With no option set in your yaml for navigation, you go through your rendered deck linearly by pressing either ↓↓ or →→. If you set navigation-mode: vertical in the yaml, you will navigate between section slides with →→, but also be able to navigate down each content slide underneath each section with a ↓↓ press.
With the modified section slides that look like content slides, you can have a main story unfold linearly within your section slides, and then have an arbitrary number of drill-down slides to add details with standard content slides. For teaching, it allows you to manage your time better by having slides with extra information that you can chose to cover or not depending on time and interest from the audience. While presenting a paper, you could have your main results on a section slide, and details about the results, such as your full regression table, on content slides underneath. Giving you the option to cover these in case the audience asks.
One thing I have not solved is what presentation clicker to use with this, as most of them only have two buttons for navigating the slides.
Below is a short demo of what the slides look like.
The custom scss is in the slides.scss file.
Footnotes
With seven weeks to go before Christmas, I am already way behind: I have only started one of the websites, and still have slides to make for most sessions, and I have not shot any of the videos I want to prepare for them.↩︎
In the process of doing that, I took inspiration—I shamelessly stole—from people I think make nice course websites. Two of those people are Andrew Heiss and Kieran Healy.↩︎
In case you wonder, D&D at level 1 can be underwhelming because your character is very weak. Starting at level 3 seems to be pretty common in the community. I like playing at level 5 and above.↩︎
Maybe you are a better, smarter person, don’t rub it in my face.↩︎
To be fair, I had thought about making my slides in RMarkdown with Xaringan in 2020, but a friend who can let go told me back then to just do my slides in Powerpoint, do a good enough job of teaching and focus on my research. I managed to neither follow my instinct, nor their advice. For obvious reasons, they are way more successful than I am.↩︎
In fact, I am now back using the defaults for slides for class, so you know… whatever… as Sheldon would say: “My mum had me tested.”↩︎
She did not.↩︎
But maybe she should have.↩︎
I wanted to have these footnotes nested within one another, but figuring out how to do this seems to be a silly way to use my time, even for me.↩︎
I read Roubaud’s Le Grand Incendie de Londres about 20 years ago and it broke me. Checking the spelling of his name for this footnote, I learned today that he passed away last year. RIP! I wonder if he ever owned a car. He is part of the reason why I do not own one.↩︎
Citation
@online{vernet2025,
author = {Vernet, Antoine},
title = {Changing Tech to Teach or How to End up with a Weird Revealjs
Slides Quasi-Theme?},
date = {2025-11-06},
url = {https://www.antoinevernet.com/blog/2025/11/revealjs_slides/},
doi = {10.59350/yzgbn-9ms60},
langid = {en}
}