21 dépôts
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 est une bibliothèque de menu de navigation iOS et un framework de navigation pour application mobile écrit en Swift. Il fournit des composants réutilisables pour implémenter des menus latéraux coulissants animés et des tiroirs de navigation au sein des applications iOS. Le framework prend en charge la navigation par balayage continu, permettant aux utilisateurs de passer d'un menu à l'autre sur les côtés opposés de l'écran en un seul mouvement. Il inclut un système de coordination pour gérer plusieurs instances de menu à travers différents niveaux de navigation et un mécanisme de configuration globale pour assurer un comportement et une apparence cohérents sur tous les écrans de l'application. La bibliothèque gère la traduction de vue basée sur les gestes et le rendu de menu coulissant avec des effets de parallaxe intégrés. Elle fournit également des rappels de visibilité pilotés par l'état pour notifier les contrôleurs de vue lorsque les menus s'ouvrent ou se ferment.
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 est une bibliothèque d'autocomplétion de mentions JavaScript et un moteur de suggestion côté client utilisé pour ajouter des menus déroulants basés sur des déclencheurs aux zones de texte et aux éditeurs de texte riche. Il fonctionne comme un plugin pour intégrer des popups d'autocomplétion dynamiques dans des éditeurs HTML tiers et des éléments contentEditable. La bibliothèque fournit un framework pour gérer plusieurs caractères déclencheurs et des modèles d'insertion personnalisés pour les mentions d'utilisateurs et les symboles. Elle prend en charge l'utilisation d'une logique de correspondance personnalisée et l'assignation de touches déclencheuses spécifiques pour mapper différents caractères vers des sources de données distinctes. Le moteur couvre la récupération de suggestions à partir de jeux de données locaux ou distants, la définition de structures HTML personnalisées pour les modèles de suggestion, et le calcul des coordonnées des popups au sein de contextes de document ou d'iframe. Il inclut également des capacités pour filtrer les résultats via des fonctions externes et rafraîchir les données de suggestion.
Programmatically manages the visibility and lifecycle of the autocomplete suggestion menu.
Zag est une bibliothèque de machine à états UI headless qui fournit une logique de composant non stylisée pour assurer un comportement cohérent à travers différents moteurs de rendu. Elle fonctionne comme une boîte à outils pour modéliser des interactions d'interface utilisateur complexes en utilisant des statecharts, découplant la logique sous-jacente et les attributs d'accessibilité du stylage visuel. La bibliothèque est agnostique au framework, utilisant des adaptateurs spécialisés pour faire le pont entre sa logique de machine à états et diverses bibliothèques JavaScript telles que React, Solid, Vue et Svelte. Cette approche permet aux développeurs de maintenir un modèle d'interaction unique tout en appliquant n'importe quelle solution CSS ou de stylage via des attributs de données pilotés par l'état. Zag couvre un large éventail de domaines fonctionnels, incluant une gestion complète de l'accessibilité pour la navigation au clavier et les attributs ARIA, ainsi qu'une vaste collection de primitives interactives. Celles-ci incluent des contrôles de saisie, des éléments de navigation comme les menus et onglets, des composants de superposition tels que les dialogues et popovers, et une gestion média complexe pour le recadrage d'image et la capture de signature. Elle fournit également des utilitaires pour la gestion de données hiérarchiques, la gestion de listes asynchrones et un système pour construire des visites guidées de produits.
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 est un framework GUI multiplateforme et une liaison (binding) qui permet la création de logiciels de bureau en combinant un backend Go compilé avec un frontend Electron. Il fonctionne comme un pont de communication inter-processus, utilisant un système de messagerie asynchrone pour échanger des événements JSON et synchroniser l'état entre le processus Go et l'interface utilisateur JavaScript. Le projet fournit un wrapper d'API de bureau natif pour orchestrer les fonctionnalités au niveau du système depuis le backend. Cela inclut la possibilité de gérer les fenêtres de navigateur, de construire des menus d'application natifs et de contrôler les icônes de la barre d'état système et le dock macOS. Il permet également l'enregistrement de raccourcis clavier globaux et l'exécution de commandes système. Le framework couvre de larges domaines de capacités, incluant la gestion des fenêtres, la détection de l'affichage matériel et les boîtes de dialogue système natives. Il fournit en outre un système de distribution pour regrouper les binaires d'application et les assets intégrés dans des installateurs distribuables ou des fichiers exécutables uniques pour plusieurs systèmes d'exploitation, incluant le provisionnement automatisé des binaires d'exécution requis.
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.