← All reportsPublic report

hakimel/reveal.js

The HTML Presentation Framework

72k stars JavaScript View on GitHubprofiled 11d ago
Try GitZoid
4PRs this week
1Contributors
241Deps scanned
0Issues found
01 · Repo overview

How reveal.js is put together

reveal.js is a browser-side HTML presentation framework written in TypeScript/JavaScript with SCSS styling. The core is a Deck class (js/reveal.js) composed of many single-responsibility controllers under js/controllers/ that manage navigation, fragments, backgrounds, keyboard/touch input, and views; plugins (highlight, markdown, math, notes, search, zoom) live in plugin/ and are built as separate ES/UMD bundles via Vite. A nested react/ workspace provides an official React wrapper (@revealjs/react) built with Vite and tested with Vitest/jsdom. There is no backend: the library ships as dist bundles consumed by static pages (index.html, demo.html), with no datastores or server runtime.

Languages

TypeScriptJavaScriptSCSSCSSHTML

Frameworks

ViteReact 19 (react/ wrapper)QUnit + Puppeteer (tests)highlight.jsmarked

Infrastructure

GitHub Actions CI (.github/workflows/test.yml badge)Node.js >=22.12.0 devEngines requirement

Major components

Core deck engine (js/reveal.js)

The Reveal Deck class that wires configuration, slide DOM parsing, layout/scaling, and exposes the public RevealApi.

Navigation & input controllers (js/controllers/keyboard.js, touch.js, location.js, jumptoslide.js, controls.js, focus.js)

Handle hash-based routing, keyboard shortcuts, touch gestures, jump-to-slide, on-screen controls, and focus management.

Slide content controllers (js/controllers/slidecontent.js, fragments.js, autoanimate.js, overview.js, scrollview.js, printview.js, backgrounds.js)

Manage slide transitions, fragment stepping, auto-animate, overview grid mode, scroll/print views, and slide backgrounds.

Plugin system (js/controllers/plugins.js, plugin/*/plugin.js)

Registers and initializes built-in plugins: highlight, markdown, math (KaTeX/MathJax 2-4), notes, search, zoom.

Speaker notes view (plugin/notes/plugin.js, plugin/notes/speaker-view.html)

Provides the presenter speaker-view window driven by a standalone HTML page.

Styling & themes (css/reveal.scss, css/theme/*.scss, css/print/*)

Core presentation styles, 15+ SCSS themes sharing template mixins/settings, and PDF/paper print stylesheets.

React wrapper (react/src/components/, react/src/index.ts)

React components (Deck, Slide, Stack, Fragment, Code, Markdown) exposing reveal.js declaratively, with Vitest unit tests.

Build & packaging scripts (scripts/, vite.config*.ts, build/dts-paths.ts)

Build core/styles/plugin bundles, generate .d.ts, add license banners, zip releases, and run QUnit-via-Puppeteer tests.

02 · Weekly changes

Accessibility and security took center stage, with hidden slides made non-interactive and dependencies upgraded to fix vulnerabilities.

1 weeksWeek of 2026-08-24

This week's work on reveal.js focused on two things: improving accessibility for people using screen readers and keyboards, and routine maintenance. The standout change marks slides that aren't currently visible as 'inert' so hidden content can't be accidentally interacted with, alongside dependency upgrades that patch known security vulnerabilities.

Feature

Hidden slides marked inert

All slide sections that aren't currently being presented are now marked 'inert', meaning keyboards and assistive technologies can't interact with off-screen content (issue #1587).

Chore

Dependency upgrades to fix vulnerabilities

Project dependencies were upgraded to newer versions that resolve known security vulnerabilities.

Chore

General dependency refresh

A routine dependency upgrade was merged to keep the project's building blocks current.

03 · Security check

Dependencies and code review

241 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 241 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required