Pro-tip: Press space bar to progress and it won't skip any slides


The HTML Presentation Framework

Created by Hakim El Hattab / @hakimel
this version is heavily modified by Wes Ruvalcaba / @wesruv

Hello There

reveal.js enables you to create beautiful interactive slide decks using HTML. This presentation will show you examples of what it can do.

Vertical Slides

Slides can be nested inside of each other.

Use the Space key to navigate through all slides.

Down arrow

Basement Level 1

Nested slides are useful for adding additional detail underneath a high level horizontal slide.

Basement Level 2

That's it, time to go back up.

Up arrow


Not a coder? Not a problem. There's a fully-featured visual editor for authoring these, try it out at

Point of View

Press ESC to enter the slide overview.

Hold down alt and click on any element to zoom in on it using zoom.js. Alt + click anywhere to zoom back out.

Slide Backgrounds

Set data-background="#dddddd" on a slide to change the background color. All CSS color formats are supported.

Down arrow

Image Backgrounds

<section data-background="image.png">

Tiled Backgrounds

<section data-background="image.png" data-background-repeat="repeat" data-background-size="100px">

Video Backgrounds

<section data-background-video="video.mp4,video.webm">

... and GIFs!

Extra CSS helpers

Because there's often a need for simple layout utilities, this version of reveal has a few built in classes and helpers.

Column Layout

Resilient equal height and equal width columns.

<div class="column-wrapper">
  <div style="border: 1px solid">
    Column 1<br><br><br>
  <div style="border: 1px solid">
    Column 2
Column 1

Column 2

See for more info.

File Listings

<ul class="file-list">
  <li>Folder name</li>
  <li>Folder name
      <li>Nested folder</li>
      <li>Nested folder</li>
      <li class="file">Nested file</li>
  <li class="file">File</li>
  • Folder
  • Folder
    • Nested folder
    • Nested folder
    • Nested file
  • Folder name
  • File

Color Classes

<span class="color-link">Link color</span>
<span class="bg-link">Link background</span><br>
<span class="color-slide-bg">Slide BG color</span>
<span class="bg-slide-bg">Slide BG background</span><br>
<span class="color-headline">Headline color</span>
<span class="bg-headline">Headline background</span><br>
<span class="color-highlighter">Highlighter color</span>
<span class="bg-highlighter">Highlighter background</span>
Link color Link background
Slide BG color Slide BG background
Headline color Headline background
Highlighter color Highlighter background

Icons by Font Awesome

For iconography I've included FontAwesome for it's ease of use and good documentation. Basic syntax is:

<i class="fa fa-star"></i> Here is my star

Here is my star


For a complete list of fonts go to

Since it's an icon font, use font CSS to manipulate it (font-size, color, etc).

For more code examples see:

Prettier Code

function linkify( selector ) {
  if( supports3DTransforms ) {
    var nodes = document.querySelectorAll( selector );
    for( var i = 0, len = nodes.length; i < len; i++ ) {
      var node = nodes[i];
      if( !node.className ) {
        node.className += ' roll';

Code syntax highlighting courtesy of prism.js.

Languages available

(By default)

This version of reveal.js prism.js highlighting. By default the following syntaxes have been included:

  • Markup (aka HTML)
  • CSS
  • Javascript
  • Bash
  • Git
  • PHP
  • JSX
  • SCSS
  • Twig
  • YAML

Example Code

To use any of these your syntax should look like:

<pre><code class="language-markup">&lt;!-- Example --&gt;
&lt;p&gt;Keep your first line of code on the same line
as the pre and code tag, and avoid any indenting that you
don't want in the presentation.&lt;/p&gt;
&lt;p&gt;It doesn't look as good in code view, but it's
better for the rendered view&lt;/p&gt;</code></pre>

Will look like:

<!-- Example -->
<p>Keep your first line of code on the same line
as the pre and code tag, and avoid any indenting that you
don't want in the presentation.</p>

<p>It doesn't look as good in code view, but it's
better for the rendered view</p>

More Prism.js Info

Also included are the line-highlight and line number, documentation for those are here:

To replace/augment the languages included or plugins download a different custom build

The code is in plugins/prismjs/.

For any other issues see

Marvelous List

  • No order here
  • Or here
  • Or here
  • Or here

Fantastic Ordered List

  1. One is smaller than...
  2. Two is smaller than...
  3. Three!

Tabular Tables

Item Value Quantity
Apples $1 7
Lemonade $2 18
Bread $3 2

Clever Quotes

These guys come in two forms, inline: “The nice thing about standards is that there are so many to choose from” and block:

For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.

Touch Optimized

Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.


Hit the space bar...

... to step through ...

... a fragmented slide.

Fragment Styles

There's different types of fragments, like:







Transition Styles

You can select from different transitions, like:
None - Fade - Slide - Convex - Concave - Zoom

Background Transitions

Different background transitions are available via the backgroundTransition option. This one's called "zoom".

Reveal.configure({ backgroundTransition: 'zoom' })

Background Transitions

You can override background transitions per-slide.

<section data-background-transition="zoom">

Intergalactic Interconnections

You can link between slides internally, like this.

Speaker View

There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.

Press the S key to try it out.

Export to PDF

Presentations can be exported to PDF, here's an example:

Global State

Set data-state="something" on a slide and "something" will be added as a class to the document element when the slide is open. This lets you apply broader style changes, like switching the page background.

State Events

Additionally custom events can be triggered on a per slide basis by binding to the data-state name.

Reveal.addEventListener( 'customevent', function() {
  console.log( '"customevent" has fired' );
} );

Take a Moment

Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.

Much more


- Source code & documentation