
impress.js
A JavaScript framework for making zoomable, 3D-style presentations in a web browser using CSS transforms.
- Stars
- 38.2k
- Forks
- 6.6k
- Licence
- MIT
- Language
- JavaScript
- Last update
- 4 months ago
- Type
- Library
What it is
impress.js is a JavaScript framework for building presentations that run in a web browser. It uses CSS3 3D transforms and transitions to move between slides placed in a large canvas, inspired by the zoomable style of prezi.com. You write the presentation as HTML and CSS, and the library handles the movement between slides.
- Build a zoomable presentation by placing slides at positions in 3D space in HTML
- Start from the Classic Slides example to make a simple PowerPoint-style deck
- Study the official demo's HTML and CSS to learn the features
- Embed an animated presentation or animation in a web page, with the compatibility caveats the README notes
Great for
- Web developers who want a custom, browser-based slide deck
- Designers who want spatial, animated slide layouts
- People presenting from their own laptop in a modern Firefox or Chrome browser
- Anyone starting from the Classic Slides template for a traditional slide look
Not ideal for
- People who need a point-and-click editor, since the README describes the separate Impressionist project for visual editing and does not describe a built-in editor
- Anyone who needs reliable display for many visitors on older browsers, since the README says some visitors may not see presentations correctly
- People who want a no-code tool, since the work is done in HTML, CSS and JavaScript
How to get it
- 1
Clone and build from source
You'll need: Node.js 7.6 or newer (only needed for development and building) · npm (only needed for development and building)
Clone the repository
git clone --recursive https://github.com/impress/impress.js.gitEnter the project folder
cd impress.js - 2
Run it
- Clone the repository, or link the v2.0.0 file from the CDN link in the README.
- Open the official demo index.html or the Classic Slides example in a modern browser.
- Follow the Getting Started guide to write your own HTML presentation.
- Read DOCUMENTATION.md for the core API.
- 3
Get the most out of it
- Read DOCUMENTATION.md for the reference API and the plugin notes in src/plugins/README.md
- Use the Classic Slides example as a template for a traditional slide layout
- Look at the commented index.html demo to see the features in use
- Check the wiki for community examples and tutorials, and the Impressionist project for a visual editor
Downloads
Strengths
- Based on standard CSS3 transforms and transitions, with no jQuery or other JavaScript libraries required
- Core is a single JavaScript file that does not depend on Node or npm at runtime, according to the README
- Has a documented API reference, a Getting Started guide, and an official demo with commented source
Trade-offs
- Browser support is limited to modern browsers, and the README says it is mainly aimed at presenting from your own laptop
- The README says it may not help if you have nothing interesting to say, and it offers no visual editor in the core project
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| impress.js (this) | 38.2k | Library | intermediate | 4 months ago | Web developers who want a custom, browser-based slide deck |
| reveal.js | 72.5k | Library | intermediate | 1 months ago | Developers who already write HTML, CSS, or JavaScript and want full control over slide design |
| spectacle | 10.2k | Library | intermediate | 9 days ago | React developers who want to build slides as code |
| remark | 13k | Library | beginner | 2.4 years ago | People comfortable with HTML and CSS who want slides written in Markdown |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.