Releases: hakimel/reveal.js
6.0.0
New Package: @revealjs/react
reveal.js now has an official React wrapper! The @revealjs/react package lets you build presentations using React componentsβ<Deck>, <Slide>, <Stack>, <Fragment>, and <Code>. Learn more over at revealjs.com/react.
import { Deck, Slide, Fragment } from '@revealjs/react';
<Deck>
<Slide>
<h1>Hello World</h1>
<Fragment asChild>
<h2>Appears on click</h2>
</Fragment>
</Slide>
</Deck>Try it out by pulling reveal.js master and running npm run react:demo.
Breaking Changes
See the full upgrade guide for step-by-step instructions. The short version:
- Plugin paths have moved βif your presentation HTML loads plugins directly from the file system or via CDN, update your paths from
plugin/<name>/plugin.jstodist/plugin/<name>.js(e.g.plugin/notes/notes.jsβdist/plugin/notes.js,plugin/highlight/monokai.cssβdist/plugin/highlight/monokai.css) - ES module paths renamed β
.esm.jsfiles are now.mjs(e.g.dist/reveal.esm.jsβdist/reveal.mjs). If you import via bare module specifiers this doesn't affect you. - CSS paths changed β if you install via npm, the
dist/prefix has been dropped from the public package API (e.g.reveal.js/dist/reveal.cssβreveal.js/reveal.css). - TypeScript β reveal.js now ships with types included. If you were previously using
@types/reveal.jsyou can remove it and migrate. Note that the type names are slightly different, more info in the upgrade guide.
Changes
- Switch from gulp to Vite for building and running reveal.js (@hakimel)
- Add official React wrapper for reveal.js β @revealjs/react (@hakimel)
- TypeScript types are now published as part of the package, based on the great work over at @types/reveal
- Dark mode and llms.txt support for revealjs.com.
- Add
controls: 'speaker'config option to show controls only in speaker view (@hakimel in #3853) - Videos blocked from autoplaying with audio will now play muted with an unmute button, replacing the previous browser-dependent blocked state (@hakimel)
- MathJax 4 support in the math plugin (@Khlick in #3811)
- Accessibility improvements:
alttags on images and videos are now announced by screen readers, and slide content is better punctuated for screen reader text (@hakimel in #3757, #3772) sync()now also updates slide classes, fixing issues when adding or removing slides and then calling sync (@hakimel)- A
syncevent is now dispatched when reveal.js syncs (@hakimel) - Add
removeHiddenSlides()to the API (@hakimel) data-idis now supported for slide links (@hakimel)data-preview-linkvalue now takes precedence over the anchor'shref(@hakimel in #3854)- Prevent iframes from stealing keyboard focus, controllable via the new
preventIframeAutoFocusconfig option (@hakimel) - Pressing Enter on the active slide in overview mode now exits the overview and opens that slide (@tobi-or-not-tobi)
- The
displayconfig option now supports!important(@boba-beba) - Distinct active/hover state difference in overview mode (@hakimel in #3780)
Fixes
- Fix videos not autoplaying when navigating with control arrows on Android (@hakimel)
- Fix initial video autoplay not working on Android (@hakimel)
- Fix multiple videos started simultaneously sometimes failing to render in Mobile Safari (@hakimel)
- Fix overview mode missing slide thumbnails in adjacent stacks with more than 10 vertical slides (closes #3754) (@hakimel)
- Fix missing font in dracula theme (fixes #3781) (@hakimel)
- Fix SCSS deprecation warnings by refactoring all themes to latest Sass syntax (@hakimel)
Full Changelog: 5.2.1...6.0.0
5.2.1
Lightbox bug fixes and improvements
- Prevent reveal.js keyboard shortcuts while lightbox is open (@tobi-or-not-tobi in #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.getStateandReveal.setState(@hakimel) - Lightbox now syncs between speaker view and main window (@hakimel)
- Fix pause overlay/lightbox layering conflict (@tobi-or-not-tobi in #3768)
- Added lightbox example to demo.html
Full Changelog: 5.2.0...5.2.1
5.2.0
New Feature: Lightbox
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:
lightbox.mp4
Changes
- Upgrade to gulp 5.0.
- Add
controls: "speaker-only"config option for only showing controls in speaker view (@gpotter2 in #3716) - Extend search API to include
closeSearchandtoggleSearch(@lechten in #3685) - Automatic source code spellcheck via GitHub action (@yarikoptic in #3602)
- Math plugin now ignores
codetags by default (@hakimel in 0d02d8a) - Muted background videos now autoplay in the speaker view.
- Prevent
initializefrom being called twice (@hakimel in 16ac4b0) - Auto-animate no longer skips matching fragments on adjacent slides (@hakimel in 6dea2a5)
Bug fixes
- Fix reveal.js not covering full viewport height in iOS by switching to
100dvh(@hakimel in 6cebb77) - Fix background video restarting when switching fragments from notes view (#3633)
- Fix gulp package not working in gulp 5 (@dennybiasiolli in #3701)
- Fix last slide not triggering
slidechangeevent in scroll view (@hakimel in fe4a6e8)
Full Changelog: 5.1.0...5.2.0
5.1.0
Changes
- Add the
enter-fullscreenclass to any element in your presentation to turn it into fullscreen trigger (@hakimel) - Video backgrounds now continue to play seamlessly across multiple slides (@hakimel)
continuous-video-bg-2.mp4
Fixes
- MathJax3 plugin now works with in non-singleton reveal.js instances (@jokester in #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 #3588)
- Fix question mark shortcut on non-English keyboard layouts (@lechten in #3603)
- Fix
r-stackoverflow behavior in Chromium browsers (@alifeee in #3598)
Full Changelog: 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 3dade61)
- Fix stack backgrounds not working in scroll view (@bouzidanas in #3568)
- Fix
fragmentshownandfragmenthiddennot firing in scroll view (@bouzidanas, @ hakimel in #3580)
Full Changelog: 5.0.4...5.0.5
5.0.4
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 #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: 5.0.2...5.0.3
5.0.2
Changes
- Upgrade dependencies (@Mister-Hope in #3505)
- Make Markdown plugin callable without a reveal deck instance (@hakimel in #3517)
- Fix exception in speaker view (@hakimel #2512)
- Fix issue where a future vertical slide background sometimes flashed into view prematurely (@hakimel in #3520)
Full Changelog: 5.0.0...5.0.2
5.0.0
Scroll view
reveal.js 5.0 comes with a groundbreaking new feature; scroll view! (#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:
reveal-scroll-view.mp4
Want to try it out yourself? Check out the announcement deck I put together for slides.com π 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-noteswere not working on the slide-level (@skyboyer in #3477) - Add 'wheel' event listener, remove deprecated
mousewheel& 'DOMMouseScroll` (@quochuy in #3489)
Full Changelog: 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
autoSlideinstead 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: 4.5.0...4.6.0