revealjs v4.0.0 Release Notes

Release Date: 2020-05-20 // almost 4 years ago
  • πŸ’₯ 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 and Reveal.removeEventListener API methods to Reveal.on and Reveal.off. Old names are aliased for backwards compatibility.
    • βœ‚ Removes the default border style from <img>s. Can be added with the r-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