21 repository-uri
Tools for discovering and programmatically selecting application menu items.
Distinct from Conditional Menu Items: Distinct from conditional menu items: focuses on the programmatic selection of items rather than visibility logic.
Explore 21 awesome GitHub repositories matching user interface & experience · Menu Interaction Utilities. Refine with filters or upvote what's useful.
typeahead.js is a JavaScript autocomplete library used to build searchable input fields that provide real-time suggestions from local or remote data sources. It functions as a client-side suggestion engine and an asynchronous search interface, providing a customizable UI toolkit for managing search suggestion menus. The library focuses on data aggregation and performance, allowing the combination of multiple local or remote datasets into a single interface grouped by category. It utilizes rate-limited asynchronous fetching to prevent API overloading and employs search data prefetching and loc
Provides methods to programmatically open, close, or destroy the search functionality and its associated menu.
Hammerspoon is a programmable automation engine for macOS that enables deep system-level control through a Lua scripting environment. By bridging high-level scripts with native Objective-C APIs, it allows users to interact with the operating system's accessibility tree, intercept hardware input streams, and manage the lifecycle of running applications. The project distinguishes itself through an event-driven architecture that registers asynchronous hooks for system notifications and hardware events. This allows for real-time automation, such as remapping keyboard and mouse inputs, managing wi
Discovers and programmatically selects application menu items to trigger actions.
Downshift is a headless UI component library and framework for React that provides the state and interaction primitives necessary to build accessible autocomplete, combobox, and select dropdown components. It functions as a WAI-ARIA UI framework, generating the required ARIA attributes and keyboard event handlers to ensure screen reader compliance without providing any default styling. The library utilizes a headless component pattern to decouple interaction logic from the visual presentation. It manages complex state transitions through reducers and synchronizes internal UI state with extern
Offers programmatic methods to manage the visibility, lifecycle, and state of autocomplete suggestion menus.
Firefox is a cross-platform web browser engine designed to render web content, execute JavaScript, and manage secure browsing sessions. It utilizes a multi-process isolation architecture that distributes browser tasks across independent operating system processes to ensure stability and prevent site-specific failures from impacting the entire application. The engine incorporates a sandboxed execution environment to restrict web content and untrusted scripts to isolated memory compartments, enforcing security policies that prevent unauthorized access to system resources. The project distinguis
Counts menu item selections and optional trigger sources to evaluate the usage of specific interface commands.
Bootstrap Select is a jQuery plugin that replaces standard HTML select elements with a stylized interface. It functions as a custom dropdown menu that transforms native browser inputs into accessible form components. The project differentiates itself by providing real-time search filtering, multi-select data entry, and the ability to populate selection lists dynamically via remote JSON sources. To maintain browser performance when handling large datasets, it utilizes virtual rendering to display only the visible subset of options. The component includes accessibility support through ARIA att
Provides programmatic methods to open, close, or toggle the visibility of the dropdown menu.
Base UI is a headless component library and unstyled framework providing accessible interface primitives. It decouples behavioral logic and state management from the visual layer, allowing developers to implement complex UI patterns while maintaining total control over the final styling. The library implements WAI-ARIA design patterns to ensure all primitives support standard keyboard navigation and screen reader accessibility. It provides a suite of low-level building blocks that handle the internal mechanics of interface elements without bundling any CSS. The framework covers a broad range
Implements interactive menu items including standard buttons, radio groups, and checkboxes.
This project is a jQuery plugin and movement analysis tool designed to stabilize the interaction of dropdown and mega menus. It functions as an intentional hover detector that distinguishes between casual cursor navigation and a user's specific intent to target a menu item. The tool enhances the user experience of responsive mega menus by preventing them from closing prematurely. It achieves this by analyzing mouse movement direction to determine if a user is intentionally moving toward a sub-menu item, even when moving diagonally. The system employs vector-based intent detection and coordin
Analyzes mouse movement direction to distinguish between casual navigation and the intent to select a menu item.
zsh-autocomplete is a shell extension and completion engine for Zsh that provides real-time, asynchronous type-ahead suggestions and interactive completion menus while typing. It functions as a productivity tool designed to reduce keystrokes by filtering available commands and arguments based on current user input. The project distinguishes itself by automatically inserting the longest common prefix among matching suggestions and providing an interactive shell menu for navigating command history and filesystem paths. It includes mechanisms for tracking and suggesting recently visited director
Provides a dynamic overlay menu that renders completion suggestions relative to the current cursor position.
Snap.js is a JavaScript library for building draggable side navigation panels on touch devices. It enables slide-in menus from the left or right screen edge, driven by a gesture-based state machine that interprets drag and flick gestures to open and close the panel. The library distinguishes horizontal menu drags from vertical scrolling by analyzing the initial touch movement angle, and locks menu movement to a single axis to prevent interference. It uses hardware-accelerated CSS transforms for smooth animations and provides configurable snap thresholds that determine whether a drag should op
Fires callbacks when dragging starts, the menu opens, or an animation completes.
Opens the completion menu, optionally filtered to specific providers or with the first item pre-selected.
SideMenu este o bibliotecă de meniu de navigare pentru iOS și un framework de navigare pentru aplicații mobile scris în Swift. Oferă componente reutilizabile pentru implementarea meniurilor laterale animate de tip slide-out și a sertarelor de navigare în aplicațiile iOS. Framework-ul suportă navigarea prin swipe continuu, permițând utilizatorilor să facă tranziția între meniurile de pe părțile opuse ale ecranului într-o singură mișcare. Include un sistem de coordonare pentru a gestiona instanțe multiple de meniu pe diferite niveluri de navigare și un mecanism de configurare globală pentru a asigura un comportament și un aspect consistent pe toate ecranele aplicației. Biblioteca gestionează translația view-urilor bazată pe gesturi și redarea meniurilor glisante cu efecte de paralaxă integrate. De asemenea, oferă callback-uri de vizibilitate bazate pe stare pentru a notifica view controller-ele când meniurile se deschid sau se închid.
Includes callbacks that fire when the menu opens, closes, or reaches specific visibility thresholds.
Kando is a cross-platform desktop pie menu launcher that runs on Windows, macOS, and Linux, including Wayland compositors. It opens a radial menu on a hotkey and lets users select applications, files, or shortcuts by moving the cursor toward a slice, and can also be controlled from the command line to open specific menus or trigger shortcuts. The project distinguishes itself through a gesture-based selection system that interprets pointer movement direction and distance rather than requiring precise clicking, and an input device abstraction layer that normalizes input from mouse, stylus, touc
Selects a menu item by hovering over it for a brief moment, requiring no clicks or key presses.
noice.nvim is a Neovim UI enhancement plugin that replaces the editor's default command-line, notification, and popup-menu interfaces with a modern, customizable floating-window system. It provides a command-line popup menu, an LSP progress viewer, a message routing framework, and a notification display system with configurable layouts and severity-based styling. The plugin routes Neovim messages to different visual containers based on event type, kind, or content, and displays notifications with customizable layouts, icons, and severity-based styling in floating windows. It visualizes ongoin
Shows a configurable floating menu for command-line completions with auto-positioning and custom highlighting.
At.js este o bibliotecă JavaScript de autocomplete pentru mențiuni și un motor de sugestii client-side utilizat pentru a adăuga dropdown-uri bazate pe trigger-e în textarea-uri și editoare de text rich. Acesta funcționează ca un plugin pentru integrarea popup-urilor dinamice de autocomplete în editoare HTML terțe și elemente contentEditable. Biblioteca oferă un framework pentru gestionarea mai multor caractere trigger și template-uri de inserare personalizate pentru mențiunile utilizatorilor și simboluri. Suportă utilizarea logicii de potrivire personalizate și atribuirea unor taste trigger specifice pentru a mapa caractere diferite către surse de date separate. Motorul acoperă recuperarea sugestiilor din seturi de date locale sau la distanță, definirea structurilor HTML personalizate pentru template-urile de sugestii și calcularea coordonatelor popup-ului în contexte de document sau iframe. Include, de asemenea, capabilități pentru filtrarea rezultatelor prin funcții externe și reîmprospătarea datelor de sugestie.
Programmatically manages the visibility and lifecycle of the autocomplete suggestion menu.
Zag este o bibliotecă de mașini de stare UI headless care oferă logică de componente ne-stilizată pentru a asigura un comportament consistent pe diferite motoare de randare. Funcționează ca un toolkit pentru modelarea interacțiunilor complexe ale interfeței utilizator folosind statecharts, decuplând logica subiacentă și atributele de accesibilitate de stilizarea vizuală. Biblioteca este agnostică față de framework, utilizând adaptoare specializate pentru a face legătura între logica mașinii sale de stare și diverse biblioteci JavaScript precum React, Solid, Vue și Svelte. Această abordare permite dezvoltatorilor să mențină un singur model de interacțiune în timp ce aplică orice soluție CSS sau de stilizare prin atribute de date bazate pe stare. Zag acoperă o gamă largă de domenii funcționale, inclusiv gestionarea cuprinzătoare a accesibilității pentru navigarea prin tastatură și atributele ARIA, precum și o vastă colecție de primitive interactive. Acestea includ controale de input, elemente de navigare precum meniuri și tab-uri, componente de overlay precum dialoguri și popover-uri și gestionarea complexă a media pentru decuparea imaginilor și capturarea semnăturilor. Oferă, de asemenea, utilitare pentru gestionarea datelor ierarhice, gestionarea listelor asincrone și un sistem pentru construirea de tururi ghidate ale produsului.
Manages the open state and automatic closing logic for interactive menus.
Ark is a headless UI component library that delivers accessible, cross-framework primitives with behavior governed by finite state machines. It provides unstyled components that encapsulate logic and accessibility — including full keyboard navigation, focus management, and WAI-ARIA support — while leaving visual styling entirely to the consumer. Components expose scoped data attributes for CSS targeting and use state machines to produce predictable, testable interactive behavior across every state transition. The library distinguishes itself through a state propagation model that distributes
Exposes menu state and methods via a hook for programmatic open, close, and external control.
go-astilectron este un framework GUI cross-platform și un binding care permite crearea de software desktop prin combinarea unui backend Go compilat cu un frontend Electron. Funcționează ca o punte de comunicare între procese, utilizând un sistem de mesagerie asincron pentru a schimba evenimente JSON și a sincroniza starea între procesul Go și interfața utilizator JavaScript. Proiectul oferă un wrapper API desktop nativ pentru a orchestra funcționalitățile la nivel de sistem din backend. Aceasta include capacitatea de a gestiona ferestrele browserului, de a construi meniuri native ale aplicației și de a controla pictogramele din system tray și dock-ul macOS. De asemenea, permite înregistrarea scurtăturilor globale de tastatură și executarea comenzilor de sistem. Framework-ul acoperă domenii largi de capabilități, inclusiv gestionarea ferestrelor, detectarea afișajului hardware și dialogurile native de sistem. Oferă, de asemenea, un sistem de distribuție pentru a împacheta binarele aplicației și activele încorporate în instalatoare distribuibile sau fișiere executabile unice pentru mai multe sisteme de operare, inclusiv furnizarea automată a binarelor runtime necesare.
Triggers specific backend logic or events when users interact with application menu items.
lspsaga.nvim is a Neovim LSP UI enhancement and floating window manager. It provides a visual system for presenting Language Server Protocol data through interactive overlays, serving as a code navigation tool and a refactoring interface. The project focuses on improving the interaction flow of LSP features by rendering documentation hovers, symbol definitions, and diagnostic data in floating windows. It distinguishes itself by integrating a floating window framework that also manages embedded terminal sessions for executing shell commands without leaving the editor workspace. The plugin cov
Provides an interactive menu for selecting and previewing refactoring options before updating source files.
systray is a Go library used to create and manage icons and menus within the operating system notification area. It functions as a cross-platform GUI library that provides a persistent application entry point and a notification area menu manager. The library enables the creation of hierarchical menus and custom tray icons across different desktop operating systems. It supports the use of nested submenus and allows for the styling of individual menu entries with custom images. The toolset covers a range of interaction capabilities, including the management of menu item states through checked
Implements callback functions that execute specific application logic when menu items are selected.
Gecko-dev is a web browser engine and cross-platform browser framework. It serves as a foundational system for rendering web content and executing JavaScript, providing a complete layout and rendering pipeline to transform web markup into visual pixels. The project is distinguished by a specialized browser UI toolkit that uses XML-based languages and custom widgets to build cross-platform windows and menus. It incorporates unique development bridges, including design-to-code linking and a standardized protocol for AI-driven browser control and automated verification. Its broader capabilities
Records the position of toolbar items and trigger nodes to understand user engagement with the interface.