<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Customize Menus</title> </head> <body> <div> <h1>Customize Menus</h1> <h3> The <code>Menu</code> and <code>MenuItem</code> modules can be used to create custom native menus. </h3> <p> There are two kinds of menus: the application (top) menu and context (right-click) menu. </p> <p> Open the <a href="https://electronjs.org/docs/api/menu" >full API documentation<span >(opens in new window)</span ></a > in your browser. </p> </div> <div> <h2>Create an application menu</h2> <div> <div> <p> The <code>Menu</code> and <code>MenuItem</code> modules allow you to customize your application menu. If you don't set any menu, Electron will generate a minimal menu for your app by default. </p> <p> If you click the 'View' option in the application menu and then the 'App Menu Demo', you'll see an information box displayed. </p> <div> <h2>ProTip</h2> <strong>Know operating system menu differences.</strong> <p> When designing an app for multiple operating systems it's important to be mindful of the ways application menu conventions differ on each operating system. </p> <p> For instance, on Windows, accelerators are set with an <code>&</code>. Naming conventions also vary, like between "Settings" or "Preferences". Below are resources for learning operating system specific standards. </p> <ul> <li> <a href="https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/" >macOS<span >(opens in new window)</span ></a > </li> <li> <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/bb226797(v=vs.85).aspx" >Windows<span >(opens in new window)</span ></a > </li> <li> <a href="https://developer.gnome.org/hig/stable/menu-bars.html.en" >Linux<span >(opens in new window)</span ></a > </li> </ul> </div> </div> </div> </div> <div> <h2>Create a context menu</h2> <div> <div> <div> <button id="context-menu">View Demo</button> </div> <p> A context, or right-click, menu can be created with the <code>Menu</code> and <code>MenuItem</code> modules as well. You can right-click anywhere in this app or click the demo button to see an example context menu. </p> <p> In this demo we use the <code>ipcRenderer</code> module to show the context menu when explicitly calling it from the renderer process. </p> <p> See the full <a href="https://electronjs.org/docs/api/web-contents/#event-context-menu" >context-menu event documentation</a > for all the available properties. </p> </div> </div> </div> <script> // You can also require other files to run in this process require("./renderer.js"); </script> </body> </html>