# max-mapper/menubar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/max-mapper-menubar).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

6,781 stars · 363 forks · TypeScript · BSD-2-Clause

## Links

- GitHub: https://github.com/max-mapper/menubar
- awesome-repositories: https://awesome-repositories.com/repository/max-mapper-menubar.md

## Description

Menubar is a TypeScript library for building menu bar and taskbar desktop applications on top of Electron. Given a single HTML page or web address, it creates a tray icon and an attached popup window, then handles showing, hiding, and positioning that window next to the icon. The same code runs on macOS, Windows, and most Linux distributions.

The library wraps Electron's tray and browser window objects behind one higher-level object, configured through a single options object that merges with defaults. The popup can open on click or right-click and hides automatically when it loses focus unless it is pinned always on top. The window can also be created ahead of time in a hidden state, which makes the first click respond faster at the cost of extra memory. After startup, the returned object exposes the underlying app, window, tray, and positioner instances, along with methods to show, hide, and change options.

Customization covers the tray icon image (including high-resolution variants), tooltip, dock icon visibility, window size and position, and whether the window appears when the host app is activated. Content can be loaded from a local file or a remote address, with loading options passed through to the page loader. Named lifecycle events fire when the tray is ready and when the window is created, about to load, shown, hidden, closed, or loses focus. Examples cover animating the tray icon and attaching a native context menu.

Type definitions ship with the compiled library, giving autocomplete and compile-time checks in TypeScript projects.

## Tags

### Development Tools & Productivity

- [Menubar App Frameworks](https://awesome-repositories.com/f/development-tools-productivity/menubar-app-frameworks.md) — Builds menu bar and taskbar desktop apps on Electron by wiring a tray icon to a popup window opened from the menu bar. ([source](https://github.com/max-mapper/menubar/blob/master/package.json))
- [Menubar Application Frameworks](https://awesome-repositories.com/f/development-tools-productivity/menubar-application-frameworks.md) — Builds menu bar and taskbar desktop apps from a single HTML page, handling tray icon, window creation, and show or hide behavior. ([source](https://github.com/max-mapper/menubar#readme))
- [Electron Desktop Applications](https://awesome-repositories.com/f/development-tools-productivity/electron-desktop-applications.md) — Builds small Electron desktop apps that live in the system tray and open a web-based popup window from the menu bar or taskbar.
- [System Tray Managers](https://awesome-repositories.com/f/development-tools-productivity/system-tray-managers.md) — Creates, positions, shows, and hides an Electron browser window anchored to a tray icon, with lifecycle events for custom logic.
- [Programmatic Application Controllers](https://awesome-repositories.com/f/development-tools-productivity/programmatic-application-controllers.md) — Exposes the underlying app, window, tray, and positioner objects plus methods to show, hide, and change options after startup. ([source](https://github.com/max-mapper/menubar/blob/master/README.md))
- [Application Tray Integration](https://awesome-repositories.com/f/development-tools-productivity/system-tray-managers/application-tray-integration.md) — Initializes a tray application from an existing desktop app instance with optional settings for the tray icon and attached window. ([source](https://github.com/max-mapper/menubar/blob/master/docs/classes/_menubar_.menubar.md))
- [Window Preloading](https://awesome-repositories.com/f/development-tools-productivity/window-preloading.md) — Creates the browser window in advance in a hidden state so the first tray click responds faster, trading memory for speed. ([source](https://github.com/max-mapper/menubar#readme))

### Web Development

- [Electron Framework Extensions](https://awesome-repositories.com/f/web-development/electron-framework-extensions.md) — Provides a high-level Electron library that turns a single HTML page or web address into a tray icon with an attached popup window.
- [Cross-Platform Desktop Applications](https://awesome-repositories.com/f/web-development/cross-platform-desktop-applications.md) — Produces menu bar and taskbar applications from web technologies that run on macOS, Windows, and most Linux distributions from one codebase.
- [Event Emitters](https://awesome-repositories.com/f/web-development/event-listeners/event-emitters.md) — Exposes tray and window lifecycle stages as named events that application code can subscribe to with callbacks.

### Software Engineering & Architecture

- [Cross-Platform Desktop Development](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/application-targets-domains/cross-platform-desktop-development.md) — Produces tray applications that run on macOS, Windows, and most Linux distributions from one shared codebase using Electron. ([source](https://github.com/max-mapper/menubar/blob/master/package.json))
- [Lifecycle Event Hooks](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-event-hooks.md) — Emits named events when the tray is ready and when the window is created, about to load, shown, hidden, closed, or loses focus. ([source](https://github.com/max-mapper/menubar/blob/master/README.md))
- [Options Objects](https://awesome-repositories.com/f/software-engineering-architecture/functional-design-patterns/functional-options/options-objects.md) — Takes a single options object merged with defaults to control icon, tooltip, window size, and show or hide behavior.
- [Window Preloading](https://awesome-repositories.com/f/software-engineering-architecture/window-preloading.md) — Creates the browser window in advance in a hidden state so the first click responds faster, trading extra memory.

### User Interface & Experience

- [Window Orchestration](https://awesome-repositories.com/f/user-interface-experience/system-tray-utilities/window-orchestration.md) — Automatically places the app window next to the tray icon so it appears anchored to the menu bar or taskbar. ([source](https://github.com/max-mapper/menubar/blob/master/package.json))
- [Tray Popup Windows](https://awesome-repositories.com/f/user-interface-experience/tray-popup-windows.md) — Creates a tray icon and attached popup window from just an HTML file or web address, handling the boilerplate. ([source](https://github.com/max-mapper/menubar/blob/master/README.md))
- [System Tray Icons](https://awesome-repositories.com/f/user-interface-experience/ui-components/visual-identifiers/system-tray-icons.md) — Wraps tray icon setup and its attached window so an app appears in the menu bar from one HTML entry page. ([source](https://github.com/max-mapper/menubar/tree/master/docs))
- [Window Visibility Triggers](https://awesome-repositories.com/f/user-interface-experience/window-management/window-lifecycle-controllers/window-behavior-controls/window-visibility-triggers.md) — Opens the window on click or right-click, hides it on focus loss unless pinned on top, and supports preloading. ([source](https://github.com/max-mapper/menubar/tree/master/docs))
- [Window Visibility Controllers](https://awesome-repositories.com/f/user-interface-experience/application-state-managers/window-visibility-controllers.md) — Shows or hides the window on click, right-click, or focus loss, with an option to keep it always on top. ([source](https://github.com/max-mapper/menubar/blob/master/README.md))
- [Window Positioning Control](https://awesome-repositories.com/f/user-interface-experience/coordinate-based-positioning/window-snapping-coordinates/window-positioning-control.md) — Places the window relative to the tray icon or at explicit coordinates, with control over width, height, and workspace visibility. ([source](https://github.com/max-mapper/menubar/blob/master/README.md))
- [Window Lifecycle Monitors](https://awesome-repositories.com/f/user-interface-experience/event-handling/window-lifecycle-monitors.md) — Emits named events when the tray is ready and when the window is created, about to load, shown, hidden, closed, or loses focus.
- [Window Appearance Controllers](https://awesome-repositories.com/f/user-interface-experience/floating-window-components/transparency-controls/window-appearance-controllers.md) — Configures window size, position, icon, tooltip, dock visibility, and workspace display, with high-resolution icon variants picked up automatically. ([source](https://github.com/max-mapper/menubar/tree/master/docs))
- [Focus-Loss Auto-Hiding](https://awesome-repositories.com/f/user-interface-experience/focus-loss-auto-hiding.md) — Hides the popup window automatically when it loses focus unless it is pinned always on top.
- [System Tray Customizations](https://awesome-repositories.com/f/user-interface-experience/interface-appearance-customizations/system-tray-customizations.md) — Allows tuning of the menu bar icon image, high-resolution variants, tooltip, dock visibility, and popup size and position near the tray.
- [Tray-Anchored Popup Windows](https://awesome-repositories.com/f/user-interface-experience/interface-appearance-customizations/system-tray-customizations/tray-anchored-popup-windows.md) — Computes popup window coordinates from the tray icon bounds so it appears directly beneath or beside the menu bar icon.
- [Preloaded Popup Windows](https://awesome-repositories.com/f/user-interface-experience/preloaded-popup-windows.md) — Creates the popup window in advance in a hidden state so the first click on the tray icon responds quickly, trading memory for speed.
- [Programmatic Window Controls](https://awesome-repositories.com/f/user-interface-experience/programmatic-window-controls.md) — Exposes app, window, tray, and positioner instances plus methods to show, hide, and change options after creation. ([source](https://github.com/max-mapper/menubar#readme))
- [Tray and Window Wrappers](https://awesome-repositories.com/f/user-interface-experience/tray-and-window-wrappers.md) — Wraps Electron's tray and browser window objects in the main process behind one higher-level object.
- [Icon Behavior Configurations](https://awesome-repositories.com/f/user-interface-experience/ui-components/visual-identifiers/system-tray-icons/icon-behavior-configurations.md) — Lets developers configure tray icon, tooltip, window size and position, dock visibility, and click or right-click opening behavior. ([source](https://github.com/max-mapper/menubar#readme))
- [Window Behavior Controls](https://awesome-repositories.com/f/user-interface-experience/window-management/window-lifecycle-controllers/window-behavior-controls.md) — Exposes methods to show, hide, and reposition the tray window after startup, plus access to the underlying app, tray, and window objects.

### Operating Systems & Systems Programming

- [Cross-Platform Support](https://awesome-repositories.com/f/operating-systems-systems-programming/cross-platform-support.md) — Run the same tray application on macOS, Windows, and most Linux distributions with a very small footprint and minimal dependencies. ([source](https://github.com/max-mapper/menubar/blob/master/README.md))
