Create Mobile-First Side Menus with SlideReveal.js Library

Author: technoquill
Views Total: 0 views
Official Page: Go to website
Last Update: June 26, 2025
License: MIT

Preview:

Description:

SlideReveal.js is a simple, lightweight off-canvas menu JavaScript library that helps you create push menus, overlay side navigation, sidebar drawers in modern web applications.

Features:

  • Left or right panel positioning with configurable width units (px, %, vw, rem, em)
  • Overlay effects with customizable colors and opacity levels
  • Or push the main content to the other side instead of overlaying
  • Blur the main content when panels open
  • Keyboard accessibility with ARIA support
  • Click outside to dismiss the panels
  • Callback system for initialization, open, close, and escape events

How to use it:

1. Install slidereveal-js and import it into your project.

# NPM
$ npm install slidereveal-js
import SlideReveal from 'slidereveal-js';

2. Or directly load the ‘slidereveal.min.js’ script in your HTML document.


Place anything here

4. Create a toggle element to reveal/dismiss the panel.

5. Create a new instance of SlideReveal and pass your panel’s selector. That’s it.

const menu = new SlideReveal('#panel', {
  trigger: '.toggle-button',
});

6. All possible options.

  • width (Number/String): Panel width – supports px, %, vw, rem, em units (default: 300)
  • position (String): ‘left’ or ‘right’ positioning (default: ‘right’)
  • selector (String): CSS selector for content container (default: ‘body’)
  • zIndex (Number): Z-index for panel layering (default: 1050)
  • pushBody (Boolean): Moves content instead of overlaying (default: false)
  • overlay (Boolean): Shows background overlay (default: true)
  • overlayColor (String): CSS color value for overlay (default: ‘rgba(0,0,0,0.3)’)
  • filter (Boolean): Applies CSS filter to content (default: false)
  • filterStyle (String): CSS filter value like ‘blur(2px)’ (default: ‘blur(2px)’)
  • trigger (String/HTMLElement): Selector or element for toggle button (default: null)
  • closeOnOutsideClick (Boolean): Closes on external clicks (default: false)
  • autoEscape (Boolean): Enables Escape key closing (default: true)
  • speed (Number): Animation duration in milliseconds (default: 400)
  • ariaLabel (String): ARIA label for screen readers (default: ‘Menu’)
const menu = new SlideReveal('#panel', {
  width: 300,
  position: 'right',
  filter: false,
  filterStyle: 'blur(2px)',
  overlay: true,
  overlayColor: 'rgba(0,0,0,0.3)',
  closeOnOutsideClick: false,
  speed: 400,
  pushBody: false,
  selector: 'body',
  trigger: null,
  autoEscape: true,
  zIndex: 1050,
  classNames: {},
  ariaLabel: 'Menu',
});

7. Callback functions.

const menu = new SlideReveal('#panel', {
  onInit: () => console.log('Initialized!'),
  onOpen: () => console.log('Panel opened!'),
  onClose: () => console.log('Panel closed!'),
  onEscape: () => console.log('Closed by Escape')
});

8. API methods.

// Open the panel
slidePanel.open();     
// Close the panel
slidePanel.close();    
// Toggle open/closed state
slidePanel.toggle();   
// Remove all event listeners and DOM changes
slidePanel.destroy();

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *