awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
hakimel avatar

hakimel/reveal.js

0
View on GitHub↗
71,731 stars·16,810 forks·JavaScript·MIT·13 viewsrevealjs.com↗

Reveal.js

This project is a web-native presentation framework that renders slide decks from standard HTML or Markdown. It functions as a declarative slide engine, managing navigation, state persistence, and lifecycle events through a configuration-driven interface. By leveraging standard web technologies, it enables the creation of responsive, browser-based presentations that support complex layouts, nested transitions, and interactive content.

The framework distinguishes itself through a modular, plugin-based architecture that allows developers to extend core functionality using custom hooks and event listeners. It provides sophisticated visual control, including CSS-transform-based scaling to ensure content fits any viewport, automated element animations between slides, and incremental rendering of content fragments. Additionally, it supports multi-directional navigation, including vertical slide stacks, and offers robust synchronization capabilities for remote presentation control and multi-device audience tracking.

Beyond its core engine, the project includes comprehensive utilities for technical documentation, such as syntax-highlighted code blocks with line-specific focus and integrated mathematical typesetting. It provides native support for React-based applications through dedicated components and adapters, and includes tools for exporting presentations to PDF. The framework is designed for flexibility, allowing for custom themes, dynamic configuration updates, and the embedding of interactive media or external web content directly into the slide deck.

The project is distributed as an ES module, facilitating integration into modern build processes and script bundling environments.

Features

  • Presentation Markdown Parsers - Parse structured text files to dynamically render slide content.
  • Declarative Slide Engines - Control slide navigation, state persistence, and lifecycle events via a declarative configuration interface.
  • Initialization Routines - Bootstrap presentation environments within the browser viewport using promise-based initialization routines.
  • Slide Management and Configuration - Configure presentation behavior, navigation, and display settings through a centralized options interface.
  • DOM-Based Slide Orchestrators - Orchestrate presentation flow by dynamically manipulating the document object model to display slide containers.
  • Web-Based Presentation Authoring Tools - Build interactive, browser-based slide decks using standard HTML and Markdown syntax.
  • Presentation Deck Rendering - Standardize the structural composition and rendering of web-based slide decks.
  • Custom Module Implementations - Extend core functionality by implementing custom modular plugins.
  • Lifecycle Event Buses - Broadcasts state changes and navigation events through a centralized bus to trigger plugin execution and component updates.
  • Auto-Animation Transitions - Automate smooth visual transitions between slide states by animating layout and style changes.
  • Slide Transition Engines - Manage complex animation sequences and visual transitions between sequential slides.
  • Transition Effects - Apply fluid visual effects to elements during state changes to enhance interface transitions.
  • Code Highlight Animations - Highlight code changes sequentially by defining specific line ranges via data attributes.
  • Code Line Highlighting - Emphasize specific lines or ranges within code blocks for clear technical demonstrations.
  • Presentation Lifecycle Management - Clean up document modifications and detach event listeners to restore state during component destruction.
  • Multi-Instance Presentation Managers - Enables multiple concurrent presentations on a single page by isolating class instances for distinct document elements.
  • Slide State Management - Track current navigation state and slide positions through a dedicated interface.
  • Vertical Slide Stacks - Organize content into nested vertical stacks to enable multi-directional navigation.
  • Slide Configuration Attributes - Apply custom metadata attributes to individual slides to control background and transition properties.
  • Remote Presentation Controls - Synchronize speaker notes, navigation, and audience tracking across multiple connected devices.
  • Markdown Slide Renderers - Transform markdown content into interactive presentations with support for speaker notes and layout attributes.
  • Responsive Scaling Utilities - Scale presentation containers using CSS transforms to maintain consistent aspect ratios across viewports.
  • Developer Tools - Framework for creating HTML-based presentations.
  • Developer Utilities - Framework for creating HTML-based presentations.
  • Presentation Frameworks - Flexible framework for creating web-based slide presentations.
  • Sliders and Carousels - Framework for building HTML-based presentations.
  • Sliders & Carousels - HTML-based presentation framework.
  • Desktop And Presentation - HTML-based presentation framework.
  • Presentation Tools - Framework for building beautiful HTML-based presentations.
  • Remote Speaker Note Systems - Facilitates remote speaker note viewing on secondary devices via a server-side plugin architecture.
  • Technical Presentation Formats - Renders technical content with specialized syntax highlighting, line-specific focus, and integrated mathematical notation support.
  • Presentation Synchronization - Maintains real-time slide alignment across multiple client devices, allowing a master presenter to dictate navigation flow for all viewers.
  • Syntax Highlighting - Highlights code blocks with support for custom line numbering, specific line focus, and sequential reveal steps.
  • Incremental Rendering Systems - Updates visual state incrementally by toggling visibility classes on nested elements to reveal content in sequence.
  • Lifecycle and Loading Frameworks - Provides a runtime registry for loading, listing, and retrieving plugin instances throughout the application lifecycle.
  • Touch Navigation Interfaces - Detects swipe gestures to enable touch-based navigation, with configurable settings to disable interaction on specific elements.
  • Speaker Tools - Displays elapsed time, wall-clock time, and pacing indicators within a dedicated speaker interface to assist with presentation timing.
  • Image Lightboxes - Triggers full-screen visual overlays for images by applying specific data attributes to standard HTML elements.
  • ES Module Integrations - Import as a native module to support modern browser workflows and modular plugin architectures.
  • KaTeX Configurations - Integrates mathematical typesetting by configuring custom delimiters and library loading paths for the rendering engine.
  • Embedded Presentation Interfaces - Hosts interactive slide decks within larger web applications while retaining full control over internal navigation and state.
  • Plugin Architectures - Register external scripts that hook into the core lifecycle to expand functionality through modular plugins.
  • In-Out Transition Configurations - Define unique entry and exit animations for individual slides by appending specific suffixes to transition names.
  • Scroll Snapping Configurations - Configure scroll behavior to align content using mandatory, proximity-based, or free-scrolling modes.
  • Animation Configuration Settings - Adjusts animation timing, easing curves, and transition behaviors globally or for individual slide elements.
  • Animation Sequence Managers - Coordinate complex animation sequences and grouping between adjacent slides using unique identifiers and restart flags.
  • Fragment Transitions - Nest fragment-enabled containers to trigger multiple sequential visual transitions on a single element.
  • Code Presentation Utilities - Specify programming languages for code snippets by applying class attributes to override automatic detection.
  • Presentation Event Systems - Bubble internal presentation events to the parent window as JSON objects for real-time monitoring and integration.
  • Presentation Integrations - Bridges presentation lifecycles with framework-specific adapters to ensure stable rendering and prevent instance duplication.
  • Slide Lifecycle Hooks - Exposes lifecycle hooks that trigger callbacks during slide transitions, allowing integration with external animations or state updates.
  • Presentation State Serialization - Capture and restore navigation position by serializing the internal state into a snapshot object.
  • Media Lightboxes - Display images, videos, or external links within a full-screen overlay by applying specific data attributes to elements.
  • Media Playback Controls - Configures media elements to trigger playback automatically upon slide entry, with global overrides for fine-grained control.
  • Video Backgrounds - Embed full-screen video backgrounds with granular control over looping, muting, and opacity settings.
  • Navigation and Flow Controllers - Defines a linear path through slide content to enable standard web-style navigation between sequential or nested presentation views.
  • Navigation Controllers - Defines custom navigation logic to dictate how presentations advance, skip slides, or traverse specific content paths.
  • Presentation Layout Controls - Toggle between standard slide views and grid-based overviews programmatically using built-in navigation methods.
  • Slide Navigation Links - Creates deep-linkable navigation paths to specific slides using unique identifiers or horizontal and vertical coordinate indexing.
  • PDF Exporting - Generate portable document format files from presentations using browser-based print workflows and specific query parameters.
  • Presentation Modes - Toggles between various operational states including overview grids, auto-play sequences, and help overlays.
  • Gradient Backgrounds - Applies linear, radial, or conic CSS gradients directly to slide backgrounds for enhanced visual styling.
  • Text Scaling Utilities - Resize text automatically to fit within slide boundaries without overflowing.
  • Theme Customization Engines - Author custom CSS files to override default visual themes and apply unique styling across all slides.
  • Slide Visibility Management - Remove specific slides from the document object model during initialization by applying visibility attributes.
  • Theme Style Customizations - Adjust global design tokens like colors and spacing by modifying CSS custom properties on the root element.
  • Syntax Highlighting Components - Integrate code blocks with automatic line numbering, range highlighting, and indentation normalization via dedicated components.
  • Custom Layout Implementations - Disable default scaling and centering to enable manual CSS-based layout positioning.
  • Lazy Loading Strategies - Defer the loading of media and iframe content until slides are near the viewport to optimize performance.

Star history

Star history chart for hakimel/reveal.jsStar history chart for hakimel/reveal.js

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Reveal.js

Similar open-source projects, ranked by how many features they share with Reveal.js.
  • gnab/remarkgnab avatar

    gnab/remark

    12,995View on GitHub↗

    This project is a Markdown-driven presentation engine that transforms Markdown text into structured, web-based slideshows. It functions as a browser-based presentation tool that renders content with automatic scaling to maintain consistent layouts across different screen resolutions. The framework allows for custom visual layouts and global styles through the use of Markdown templates and CSS. It includes a dedicated presenter view interface that provides formatted speaker notes to keep the presenter synchronized with the audience. The system covers the end-to-end workflow of slide deck crea

    JavaScripthtmljavascriptmarkdown
    View on GitHub↗12,995
  • kenwheeler/slickkenwheeler avatar

    kenwheeler/slick

    28,573View on GitHub↗

    Slick is a JavaScript carousel library used to create responsive, touch-enabled sliding content areas. It functions as a frontend layout tool that allows for automated content rotation and the creation of lazy-loading image galleries. The library distinguishes itself through the ability to synchronize multiple sliders, ensuring that movement in one carousel automatically advances others to the same position. It supports adaptive breakpoints that adjust the number of visible slides based on screen size and utilizes lazy loading to defer image downloads until they enter the viewport. The syste

    JavaScript
    View on GitHub↗28,573
  • formidablelabs/spectacleFormidableLabs avatar

    FormidableLabs/spectacle

    10,136View on GitHub↗

    Spectacle is a React-based presentation framework that enables developers to author slide decks using JSX and MDX syntax. It provides a component-driven approach to building presentations, where slides are composed as React components with declarative layouts, theme-driven styling, and step-based animation sequencing. The framework distinguishes itself through its support for live coding demonstrations within slides, allowing presenters to execute and display code directly during a talk. It includes a presenter mode with dual-view architecture that shows speaker notes, a timer, and upcoming s

    TypeScriptkeynotepresentationreact
    View on GitHub↗10,136
  • jxnblk/mdx-deckjxnblk avatar

    jxnblk/mdx-deck

    11,493View on GitHub↗

    mdx-deck is a markdown presentation generator and React-based framework used to create interactive slide decks. It functions as a static site presentation engine that converts Markdown and MDX files into structured, stylable browser-based slides. The framework distinguishes itself by combining structured markdown with interactive React components and a synchronized presenter mode. This presenter mode provides a dedicated second window featuring a timer, slide previews, and hidden speaker notes for live events. The system covers a broad range of presentation capabilities, including custom CSS

    JavaScriptdeckgatsbygatsby-theme
    View on GitHub↗11,493
See all 30 alternatives to Reveal.js→

Frequently asked questions

What does hakimel/reveal.js do?

This project is a web-native presentation framework that renders slide decks from standard HTML or Markdown. It functions as a declarative slide engine, managing navigation, state persistence, and lifecycle events through a configuration-driven interface. By leveraging standard web technologies, it enables the creation of responsive, browser-based presentations that support complex layouts, nested transitions, and interactive content.

What are the main features of hakimel/reveal.js?

The main features of hakimel/reveal.js are: Presentation Markdown Parsers, Declarative Slide Engines, Initialization Routines, Slide Management and Configuration, DOM-Based Slide Orchestrators, Web-Based Presentation Authoring Tools, Presentation Deck Rendering, Custom Module Implementations.

What are some open-source alternatives to hakimel/reveal.js?

Open-source alternatives to hakimel/reveal.js include: gnab/remark — This project is a Markdown-driven presentation engine that transforms Markdown text into structured, web-based… kenwheeler/slick — Slick is a JavaScript carousel library used to create responsive, touch-enabled sliding content areas. It functions as… formidablelabs/spectacle — Spectacle is a React-based presentation framework that enables developers to author slide decks using JSX and MDX… jxnblk/mdx-deck — mdx-deck is a markdown presentation generator and React-based framework used to create interactive slide decks. It… mfontanini/presenterm — Presenterm is a CLI presentation framework and tool used to create interactive slide decks directly in the terminal.… impress/impress.js — Impress.js is a browser-based presentation engine that transforms standard document elements into interactive,…