whatisgithub

What is impress.js?

impress/impress.js — explained in plain English

Analysis updated 2026-06-20

38,174JavaScriptAudience · designerComplexity · 2/5LicenseSetup · easy

In one sentence

A JavaScript library for creating Prezi-style web presentations where slides are positioned in 3D space and the camera zooms and rotates between them, using only CSS and HTML with no external dependencies.

Mindmap

mindmap
  root((impress.js))
    What it does
      3D slide positions
      Zoom and rotate
      Camera transitions
    Tech Stack
      JavaScript
      CSS 3D transforms
      HTML only
    Use Cases
      Conference talks
      Product demos
      Portfolios
    Audience
      Presenters
      Designers
    Features
      No dependencies
      Plugin system
      Touch support
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Create a visually striking conference talk that zooms through a spatial map of ideas instead of flipping flat slides.

USE CASE 2

Build a product demo with animated transitions between 3D-positioned content sections that runs entirely in a browser.

USE CASE 3

Host a presentation as a plain HTML file with no server required, shareable via any file host.

USE CASE 4

Design an interactive portfolio where content is arranged spatially and revealed through camera movement.

What is it built with?

JavaScriptCSS3HTML

How does it compare?

impress/impress.jsnaptha/tesseract.jstooljet/tooljet
Stars38,17438,05337,869
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyeasyeasymoderate
Complexity2/52/53/5
Audiencedesignerdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

No install needed, just open an HTML file in a modern browser.

MIT, use freely for any purpose, personal or commercial, as long as you keep the copyright notice.

So what is it?

impress.js is a presentation framework for the web that uses CSS 3D transforms and transitions to create zooming, rotating, and spatially positioned slide presentations, inspired by the look and feel of the commercial Prezi presentation tool. Rather than showing slides that flip linearly one after another like a typical PowerPoint presentation, impress.js lets you position your content anywhere in a 3D space and then animates smooth camera movements between those positions as you advance through the presentation. The framework works entirely in the browser: you create an HTML file where each slide is a div element, and you set data attributes on each div to specify its position, rotation, scale, and 3D tilt. When you open the file in a browser, impress.js reads those attributes and generates the CSS needed to render the scene in 3D. Moving between slides triggers CSS transition animations. JavaScript handles keyboard navigation, touch gestures, and tracking which slide is active. The library itself has no required external dependencies and does not use jQuery. Additional functionality is available through a plugin system bundled in the main js file. You would use impress.js when you want to create a visually striking, non-linear web presentation that stands out from standard slide formats, for conference talks, product demos, or any situation where the spatial storytelling of the Prezi style fits your content. It requires a modern browser that supports CSS 3D transforms. The tech stack is plain JavaScript with no framework dependencies, and presentations are just HTML files you can open directly in a browser or host anywhere without a server.

Copy-paste prompts

Prompt 1
Using impress.js, create an HTML presentation with 5 slides positioned at different x/y/z coordinates and rotations, with smooth animated transitions between them.
Prompt 2
How do I scale a slide to zoom in on a detail in impress.js? Show me the data attributes for position, rotation, and scale on a div step.
Prompt 3
I want to create a non-linear impress.js presentation where slides are arranged in a circle. Show me the coordinates and rotation angles for 6 steps around a central point.
Prompt 4
How do I add autoplay to an impress.js presentation so it advances to the next slide every 5 seconds?

Frequently asked questions

What is impress.js?

A JavaScript library for creating Prezi-style web presentations where slides are positioned in 3D space and the camera zooms and rotates between them, using only CSS and HTML with no external dependencies.

What language is impress.js written in?

Mainly JavaScript. The stack also includes JavaScript, CSS3, HTML.

What license does impress.js use?

MIT, use freely for any purpose, personal or commercial, as long as you keep the copyright notice.

How hard is impress.js to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is impress.js for?

Mainly designer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.