
 



About
LayerPro offers a completely new way to customize web modals in your application. With LayerPro, you can create custom alerts, prompts, confirmations, and messages, effectively replacing the default browser modals.
Please make sure to read the LICENSE agreement before implementing it in your application.
Live demo
https://tests.a51.dev/
You can view an HTML version demonstrating how dpHelper and LayerPro work together. These tools can be used with HTML, React, Vue, or any other frontend framework/library.
Install for react + webpack projects
npm i layerpro --save-dev
or update:
npm i layerpro@latest --save-dev
in the index (and only there):
import "layerpro";
or
require("layerpro");
Install for ejs or other type of projects (like html)
<script src="https://cdn.jsdelivr.net/npm/layerpro"></script>
How to use it
ype layerpro in your console to explore all the available tools you can use globally! You can call these tools from anywhere without needing to import them (just include the import once in your index file).
For example, if you type alert("hello, world!"), you can see the result.
You can also use these tools as messages directly from the console.
alert("Hello world"); 
prompt("Your Name"); 
confirm(
  "Hello world",
  ()=>console.log("hello"), 
  ()=>console.log("bye") 
);
message(
  "Hello world",
  ()=>console.log("This happen after OK") 
);
Example:
import 'layerpro'
function App() {
  layerpro.popup.open(
    {
      id: 'exampleModal',
      body: 'Example',
      name: 'example',
      icon: '⚠',
      buttons: {
        confirm: {
          text: "accept",
          cb: (e) => message("confirmed")
        },
        cancel: {
          text: "cancel"
        }
      },
      width: 400,
      height: 300,
      maxWidth: 500,
      maxHeight: 350,
      minWidth: 200,
      minHeight: 150,
      top: '10%',
      left: '10%',
      right: 'auto',
      bottom: 'auto',
      fadeIn: 500,
      fadeOut: 500,
      timer: 0,
      iconize: true,
      maximize: true,
      close: true,
      isMaximize: false,
      dockable: false,
      raised: true,
      movable: true,
      resizable: false,
      store: false
    }
  )
}
export default App
Example with a React component:
import React from "react"
import 'layerpro'
export default () => {
  
  const TestApp = () => {
    return (
      <div>
        Hello
        <label>
          Alert: <input type="button" value="Alert" onClick={() => alert("Hello")} />
        </label>
      </div>
    )
  }
  
  layerpro.popup.open(
    {
      id: 'exampleModal',
      body: TestApp(),
      buttons: {
        confirm: {
          text: "accept",
          cb: () => {
            message("confirmed")
          }
        },
        cancel: {
          text: "cancel",
          cb: () => {
            alert("cancelled")
          }
        }
      },
      width: 350,
      height: 300,
      name: 'example',
      icon: '⚠',
      iconize: true,
      maximize: true,
      close: true,
      isMaximize: false,
      dockable: false,
      raised: true,
      movable: true,
      resizable: false,
      store: false,
      top: '10%',
      left: '10%',
      right: 'auto',
      bottom: 'auto',
      minWidth: 200,
      minHeight: 150,
      fadeIn: 500,
      fadeOut: 500,
      timer: 0
    }
  )
}
copyright (c) 2019 - 2025 by Dario Passariello