npm / reveal.js
reveal.js
What changed in reveal.js 6, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-30.
8 breaking2 security6 new APIs and options1 performance4 behavior and defaults1 tooling10 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initreveal.js 632 changes
Breaking changes 8
Building and developing reveal.js now requires Node.js 22.12 or later.
The data-preview-link value now takes precedence over the anchor's href.
ES module files now use the .mjs extension; update direct file imports. Bare module specifier imports are unaffected.
The project switches from gulp to Vite for building and running reveal.js.
Pressing Enter on the active slide in overview mode now exits overview and opens that slide.
Plugin files have moved from plugin/<name>/plugin.js to dist/plugin/<name>.js; update paths when loading plugins from the file system or a CDN.
The dist/ prefix has been dropped from the public npm package CSS path.
Videos blocked from autoplaying with audio now play muted and show an unmute button instead of using the previous browser-dependent blocked state.
Security 2
Iframe preview URLs are validated to fix cross-origin XSS through the postMessage API.
Blacklists previewIframe in the postMessage API.
New APIs and options 6
The
controls: 'speaker'option shows controls only in speaker view.Slide links now support the data-id attribute.
The new configuration option controls whether iframes are prevented from stealing keyboard focus.
The API adds removeHiddenSlides().
An official React wrapper lets you build presentations using the Deck, Slide, Stack, Fragment, and Code components.
A sync event is dispatched when reveal.js syncs.
Performance 1
Slide layout and scroll view performance is improved.
Behavior and default changes 4
Navigation controls, progress bars and media buttons scale for mobile viewports.
The display configuration option now supports !important.
The math plugin supports MathJax 4.
Screen readers now announce image and video alt tags, and slide content is better punctuated in screen reader text.
Tooling 1
TypeScript types are now included in the reveal.js package; users previously relying on @types/reveal.js can remove it and migrate to the included types.
Fixes and other changes 10
Markdown attributes target the whole list rather than only the last list item when separated by a blank line.
Offscreen slides no longer receive keyboard focus.
Pinch-to-zoom gestures no longer incorrectly trigger slide changes.
Slide scale is rounded to two decimal places.
Slides no longer repeatedly load and unload while scrolling.
Fixes an exception during media control removal in PDF exports.
Fixes cases where multiple videos started simultaneously sometimes failed to render in Mobile Safari.
Fixes missing thumbnails in adjacent stacks with more than 10 vertical slides.
Calling sync() now also updates slide classes, fixing issues after adding or removing slides.
Fixes videos not autoplaying on Android when navigating with control arrows and when autoplaying initially.