4.0.0
Breaking Changes 🚨
This release includes a small number of breaking changes. Please read the Upgrade Instructions if you want to migrate an existing presentation.
Highlights
- New website, docs and logo! https://revealjs.com/ 🚀
- Auto-Animate lets you create complex animations by automatically transitioning between matched elements across slides. Duration, delay and easing can be set on a per-slide or per-element basis.
- We now support multiple presentations on the same page.
- This also introduces a new embedded config option, which allows presentations to reside within a portion of a page. Previously reveal.js always covered 100% of the page width and height.
- The new
keyboardCondition: 'focused'
config option lets presentations capture keyboard events only when they're focused by the viewer.
- The reveal.js core and built-in plugins have been rewritten as ES modules. This makes the project easier to maintain and makes reveal.js itself easier to include in a bundle. Two bundles are provided:
- dist/reveal.js uses UMD and has broad cross browser support (ES5).
- dist/reveal.esm.js is an ES module. More info
- Code highlights are now automatically scrolled into view and it looks soooo good. You've got to try it out.
Changes
- The
Reveal.initialize
method now returns a promise that resolves once reveal.js is ready and all plugins have finished initializing. - Switches build systems from to gulp, using rollup for bundling.
- Moves all compiled CSS (reveal.css, reset.css and themes) from css/ to dist/. See Upgrade Instructions.
- Moves all print CSS into reveal.js. The old script-based print styles can be removed. by @quilicicf
- Adds a new
slidetransitionend
event. - Adds a new r-stack layout helper for placing elements on top of each other.
- Adds support for
data-visibility="uncounted"
to exclude slides from the progress bar and slide number count. #2543 by @lassepe - Adds
Reveal.getComputedSlideSize
API method. - Renames the
Reveal.addEventListener
andReveal.removeEventListener
API methods toReveal.on
andReveal.off
. Old names are aliased for backwards compatibility. - Removes the default border style from
<img>
s. Can be added with ther-frame
class. - Removes bower.json.
Plugins
- New syntax for registering plugins.
- All built-in plugins—such as markdown and highlight—are now available as ES modules. More info
- Notes: No longer depends on resolving an external notes.html file to work. Everything is baked into the plugin JS.
- Highlight: Upgraded to highlight.js 10.0.1.
- Highlight: Moved highlight themes from lib/css/monokai.css to plugin/highlight/monokai.css.
- Highlight: 'highlight.js' library is now installed from npm instead of being saved in the repo.
- Markdown: Support for line numbers and highlights in syntax highlighted code.
- Markdown: Support for boolean data- attributes. by @Bagira80
- Markdown: 'marked' library is now installed from npm instead of being saved in the repo.
- Multiplex: Moved out to https://github.com/reveal/multiplex
- Notes Server: Moved out to https://github.com/reveal/notes-server
Bug fixes
- Fixes a bug that prevented links from working in exported PDFs. #2628 by @telliott22
- Fixes a bug where
navigationMode: 'linear'
incorrectly hid valid vertical directions. #2582 by @earboxer - Fixes an issue that caused reveal.js to incorrectly block keyboard events when an element with
contentedtable=false
was focused. #2650