5.2.1
- Prevent reveal.js keyboard shortcuts while lightbox is open (@tobi-or-not-tobi in https://github.com/hakimel/reveal.js/pull/3767)
- Opening iframe lightboxes via
[data-preview-link]
now works all element types, not just<a>
(@hakimel) - Lightbox state is now persisted/restored when calling
Reveal.getState
andReveal.setState
(@hakimel) - Lightbox now syncs between speaker view and main window (@hakimel)
- Fix pause overlay/lightbox layering conflict (@tobi-or-not-tobi in https://github.com/hakimel/reveal.js/pull/3768)
- Added lightbox example to demo.html
Full Changelog: https://github.com/hakimel/reveal.js/compare/5.2.0...5.2.1
5.2.0
Any element in your presentation can now be turned into an image/video lightbox trigger. Clicking reveals a full-size lightbox overlay where users can view your image or video. This is great for things like clickable thumbnails in a gallery.
<!-- Click to show "A.png" in an overlay -->
<img src="A.png" data-preview-image>
<!-- Click show "B.png" in an overlay -->
<img src="A.png" data-preview-image="B.png">
<!-- Click to show "C.mp4" in an overlay and scale it to "cover" -->
<img src="A.png" data-preview-video="C.mp4" data-preview-fit="cover">
<!-- Works with any element type -->
<button data-preview-video="C.mp4">Play video</button>
Docs: revealjs.com/lightbox.
Here's what it looks like in action:
https://github.com/user-attachments/assets/3d7d5885-8099-412c-b26d-ef294adbbb3d
- Upgrade to gulp 5.0.
- Add
controls: "speaker-only"
config option for only showing controls in speaker view (@gpotter2 in https://github.com/hakimel/reveal.js/pull/3716) - Extend search API to include
closeSearch
andtoggleSearch
(@lechten in https://github.com/hakimel/reveal.js/pull/3685) - Automatic source code spellcheck via GitHub action (@yarikoptic in https://github.com/hakimel/reveal.js/pull/3602)
- Math plugin now ignores
code
tags by default (@hakimel in 0d02d8a303a39b02c919d86c94ec477d1e1b107d) - Muted background videos now autoplay in the speaker view.
- Prevent
initialize
from being called twice (@hakimel in 16ac4b00671a8ac6433091118c4ebd9b00255545) - Auto-animate no longer skips matching fragments on adjacent slides (@hakimel in 6dea2a50941bf3be6824b3eadc5cb17feb87eb5b)
- Fix reveal.js not covering full viewport height in iOS by switching to
100dvh
(@hakimel in 6cebb771eec18e244a23719f94baf0e70242abe7) - Fix background video restarting when switching fragments from notes view (https://github.com/hakimel/reveal.js/issues/3633)
- Fix gulp package not working in gulp 5 (@dennybiasiolli in https://github.com/hakimel/reveal.js/pull/3701)
- Fix last slide not triggering
slidechange
event in scroll view (@hakimel in fe4a6e82b01df923085fa867656cf11180490465)
Full Changelog: https://github.com/hakimel/reveal.js/compare/5.1.0...5.2.0
5.1.0
- Add the
enter-fullscreen
class to any element in your presentation to turn it into fullscreen trigger (@hakimel) - Video backgrounds now continue to play seamlessly across multiple slides (@hakimel)
https://github.com/hakimel/reveal.js/assets/629429/d1bcbced-5ede-4e2d-83fb-d3f3804eb674
- MathJax3 plugin now works with in non-singleton reveal.js instances (@jokester in https://github.com/hakimel/reveal.js/pull/3595)
- Changing slides via swipe gestures now works when swiping on videos—unless their controls are visible (@hakimel)
- Fix exception when destroying uninitialized reveal.js instance (@hakimel in #3593)
- Fix videos restarting each time a fragment is shown (@hakimel in #2882)
- Fix broken backwards navigation in RTL mode (@hakimel)
- Fix error when the notes plugin receives a non-string message (@NatKarmios in https://github.com/hakimel/reveal.js/pull/3588)
- Fix question mark shortcut on non-English keyboard layouts (@lechten in https://github.com/hakimel/reveal.js/pull/3603)
- Fix
r-stack
overflow behavior in Chromium browsers (@alifeee in https://github.com/hakimel/reveal.js/pull/3598)
Full Changelog: https://github.com/hakimel/reveal.js/compare/5.0.5...5.1.0
5.0.5
Changes
- Keyboard navigation support in scroll view (@hakimel in #3515)
- Add F1 shortcut for showing help overlay (@gchriz in #3570)
Fixes
- Fix postMessage XSS exploit (@hakimel in 3dade6117628beb7706b4abdc61c268ce281abbc)
- Fix stack backgrounds not working in scroll view (@bouzidanas in #3568)
- Fix
fragmentshown
andfragmenthidden
not firing in scroll view (@bouzidanas, @ hakimel in #3580)
Full Changelog: https://github.com/hakimel/reveal.js/compare/5.0.4...5.0.5
5.0.4
Fixes
- Missing slide backgrounds in mobile scroll view (#3554)
5.0.3
Changes
- Search plugin now supports searching for diacritics and searches full phrases (@t-fritsch in #3532)
- Jump-to-slide now adapts to the configured slide number format (@hakimel in #3501)
- Slide background XSS prevention (@EastSun5566 in https://github.com/hakimel/reveal.js/pull/3548)
Fixes
- Fix speaker notes not appearing in PDF exports (@hakimel in #3535)
- Fix exception when stepping backwards through code highlights (@hakimel in #3524)
- Fix exception when navigating decks in mobile browsers (@hakimel in #3539)
- Fix pause/help overlay position in scroll view (@hakimel in #3542)
- Fix mobile scroll view navigation when fragments began at a index higher than 1 (@hakimel #3540)
Full Changelog: https://github.com/hakimel/reveal.js/compare/5.0.2...5.0.3
5.0.2
Changes
- Upgrade dependencies (@Mister-Hope in https://github.com/hakimel/reveal.js/pull/3505)
- Make Markdown plugin callable without a reveal deck instance (@hakimel in https://github.com/hakimel/reveal.js/issues/3517)
- Fix exception in speaker view (@hakimel #2512)
- Fix issue where a future vertical slide background sometimes flashed into view prematurely (@hakimel in https://github.com/hakimel/reveal.js/issues/3520)
Full Changelog: https://github.com/hakimel/reveal.js/compare/5.0.0...5.0.2
5.0.0
Scroll view
reveal.js 5.0 comes with a groundbreaking new feature; scroll view! (https://github.com/hakimel/reveal.js/pull/3482)
Slide decks are a great format for giving presentations, but scrollable web pages are easier for viewers to read on their own.
The scroll view gives you the best of both worlds—without any extra effort. Present in the format best suited for presenting, share in the format best suited for consumption.
Here's what it looks in action:
https://github.com/hakimel/reveal.js/assets/629429/e94e0352-7e4c-4a0f-8ea1-a20b420bb28a
Explore the above demo yourself at https://slides.com/news/scroll-mode/scroll
How to use it
The scroll view is enabled by initializing reveal.js with view: "scroll"
or by appending ?view=scroll
to a deck URL.
Reveal.initialize({ view: 'scroll' });
It's possible to fine tune this view through multiple new config options. Full documentation available at https://revealjs.com/scroll-view.
Breaking change
The scroll view is automatically enabled for viewports below 435px wide. This is done because I believe the scroll view to be a superior way to browse any deck on a mobile device. If you want to revert this behavior and always paginate between slides, see scrollActivationWidth
:
Reveal.initialize({ scrollActivationWidth: null })
Changes
- The PDF print view can now be activated via config
Reveal.initialize({ view: 'print' })
(@hakimel in #3482) - The new URL query for activating the print view is
?view=print
. It used to be?print-pdf
, which is still supported for backwards compatibility. (@hakimel in #3482)
Fixes
- Notes from
data-notes
were not working on the slide-level (@skyboyer in https://github.com/hakimel/reveal.js/pull/3477) - Add 'wheel' event listener, remove deprecated
mousewheel
& 'DOMMouseScroll` (@quochuy in https://github.com/hakimel/reveal.js/pull/3489)
Full Changelog: https://github.com/hakimel/reveal.js/compare/4.6.0...5.0.0
4.6.0
Changes
- Add support for line number offsets in Markdown code blocks. Read the docs (@flowolf #3409)
- Significantly speed up livereload (@t-fritsch #3446)
- Add support for links to the id of an element nested inside slide (@t-fritsch #3444)
- Adds ability to override Markdown plugin default options (@t-fritsch #3443)
- Allow theme subfolders (@t-fritsch #3442)
- Refactored Markdown plugin to use let/const and strict equality (@grgprarup #3454)
Fixes
- Auto-slide duration falls back on global setting
autoSlide
instead of using first fragment auto-slide (@hakimel) - When a fragment sets
data-autoslide
, all fragments of the same index will now use the same auto-slide timing (@hakimel) - Fix code block auto-animate bug that caused unmatched lines to appear without fading in (@hakimel)
- Fix livereload when using root CLI param (@t-fritsch #3441)
- Fix scss watch tasks broken on syntax error (@t-fritsch #3445)
- Fix typos in variable names (@individual-it #3453)
- Fix code blocks font when printing pdf (@t-fritsch #3457)
- Fix dracula's theme list-style on sub-items (@gildasio #3450)
- Fix dracula li markers (@t-fritsch #3464)
Full Changelog: https://github.com/hakimel/reveal.js/compare/4.5.0...4.6.0
4.5.0
Changes
- Add support for jump-to-slide!
🚀 Press the G key and type a slide number or title. Read the docs (@hakimel) - Add
dracula
theme (@iiska #3324) - Add two new high contrast themes:
black-contrast
andwhite-contrast
(@peter-kehl @hakimel #3367) - Add default lang attribute to index.html (@sojinsamuel)
- It's now easier to define custom fragment styles via a new
.custom
class and reduced specificity. Read the docs (@hakimel) - Live reload now works with
.html
/.md
files in subfolders (@lolmaus #3305)
Fixes
- Update dependencies and fix all npm audit warnings (@hakimel)
- Fix issue with special characters in slide background image URLs (@Martinomagnifico #3315)
- Fix an issue where leading whitespace was sometimes incorrectly stripped from Markdown (@jerrykan #3358)
- Fix spacing between slides in overview mode when
disableLayout: true
(@Proliecan #3291) - The reveal.js print styles will no longer apply to content outside of reveal.js (@hakimel #3348)
- Improve selection color contrast for black theme (@hakimel)
Full Changelog: https://github.com/hakimel/reveal.js/compare/4.4.0...4.5.0