19 dépôts
Utilities for managing complex user interface events and input sequences.
Distinguishing note: Focuses on UI-specific event logic like debouncing and drag-and-drop.
Explore 19 awesome GitHub repositories matching user interface & experience · Interaction Handling. Refine with filters or upvote what's useful.
Iced is a cross-platform graphical user interface framework designed for building interactive applications with a focus on type safety and predictable state management. It utilizes a declarative architecture that separates application state, update logic, and view rendering, allowing developers to construct complex interfaces by nesting reusable functional components. The framework distinguishes itself through an Elm-inspired message-passing pattern, where all user interactions are processed as discrete messages to ensure reliable state transitions. It employs an immediate-mode rendering para
Represents user interactions as distinct variants to ensure explicit handling.
This project provides a collection of instructional guides and tutorials for Android app development, native mobile application creation, and computer science education. It focuses on building native applications through step-by-step implementation, covering the development of user interfaces and the integration of system hardware and permissions. The material extends into broader technical domains, including the study of fundamental data structures and algorithms for technical interview preparation. It also covers cybersecurity fundamentals, such as identifying web vulnerabilities and implem
Handles user clicks and gestures and provides visual feedback via toasts, snackbars, and dialogs.
SmartRefreshLayout is a pull-to-refresh framework and gesture interaction library for Android. It provides a scroll view wrapper that integrates interactive refresh headers and loading footers into mobile user interfaces, coordinating synchronized scrolling and touch events. The project features a pluggable architecture for custom refresh indicators and secondary refresh mechanisms. It utilizes damping-based gesture translation and overscroll rebound mechanisms to manage the tactile feel of drag resistance and physics-based animations. The library covers a broad range of interaction logic, i
Handles simultaneous finger inputs to drive refresh animations without interrupting the main scroll logic.
This project is a comprehensive collection of modular, reactive functions designed to streamline the development of user interfaces. It serves as a toolkit for managing application state, wrapping native browser hardware and system features, and encapsulating common logic patterns into reusable units. By binding asynchronous data sources, browser events, and system properties to component state, it provides a unified framework for building interactive web and desktop applications. The library distinguishes itself through its focus on composition and lifecycle management, allowing developers t
Captures complex input events like gestures and keyboard shortcuts to simplify logic for interactive interface elements.
Kivy is a cross-platform Python GUI framework used to build graphical user interfaces that run on desktop and mobile operating systems from a single codebase. It functions as a multi-touch UI library and a custom widget toolkit, providing a development environment for packaging Python applications into binary installations for Android and iOS. The framework is distinguished by its ability to handle complex multi-touch gestures and interactive input across various devices. It utilizes a specialized domain language for declarative UI construction to separate visual layout definitions from Pytho
Implements a specialized system for processing complex multi-touch gestures and interactive inputs across diverse hardware.
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
Triggers custom logic when users interact with drawn interface elements.
mui is a mobile UI component framework and native-like web UI kit designed for building high-performance mobile web interfaces. It functions as a mobile web performance framework and gesture-based interface library to eliminate browser lag and mimic the behaviors and animations of native mobile applications. The framework focuses on implementing common mobile UX patterns, including pull-to-refresh functionality, swipe-to-action menus, and sliding side navigation. It provides specialized tools for gesture-driven interface development to ensure an immediate visual response to touch interactions
Processes touch interactions through a native event layer for immediate visual response.
AsyncDisplayKit is an asynchronous UI framework and performance library for iOS. It provides a collection of performant alternatives to standard views, allowing developers to build responsive interfaces by offloading layout and rendering tasks to background threads. The framework is centered around a declarative layout engine based on a flexbox model, which calculates element positions and sizes asynchronously. It utilizes a node-based abstraction to wrap native views, enabling the instantiation and configuration of UI hierarchies on background threads to prevent main thread blocking. The sy
Processes taps and drags through target-action pairs to trigger UI functions.
iCarousel is a data-driven UI library for macOS and iOS used to build interactive three-dimensional scrolling experiences. It functions as a customizable view controller that renders paged content using cylindrical or cover-flow 3D effects. The component is distinguished by its programmable perspective and visual transformation hooks, which allow for the definition of custom 3D styles and bespoke animation effects. Users can adjust viewpoint distance, alpha fading, and foreshortening to control how the vanishing point and depth appear during navigation. The library manages high-performance v
Detects taps and gestures on individual items through delegate methods to trigger application logic.
Rete is a framework for building interactive, node-based visual interfaces and dataflow programming environments. It provides a core engine that processes directed graphs, allowing developers to define modular logic where nodes represent operations and connections represent the flow of data or control. By decoupling the graph logic from the user interface, the framework enables the creation of custom visual editors that can be integrated into various frontend component libraries. The project distinguishes itself through a highly extensible, signal-driven architecture that supports complex req
Manages complex user interaction events including drag-and-drop, undo-redo history, and read-only state enforcement.
This project is a comprehensive library of reusable React hooks designed to simplify browser API integration, state management, and component lifecycle tracking. It provides a declarative interface for managing complex browser interactions, allowing developers to encapsulate imperative logic into modular, composable functions that integrate directly with the component lifecycle. The library distinguishes itself by offering specialized utilities for asynchronous data orchestration, including built-in caching, retry logic, and loading state management. It also features advanced performance opti
Detects complex user interactions like hover states, key presses, and long-press gestures.
gridstack.js is a JavaScript grid layout library and responsive dashboard framework used to create interactive interfaces with draggable and resizable elements. It functions as a drag-and-drop layout manager and a JSON-serializable layout engine, allowing user-defined interface states to be persisted and restored. The library distinguishes itself through a touch-enabled grid interface and a responsive system that automatically adjusts item placement based on screen breakpoints. It features a collision-based layout engine that manages overlapping coordinates to shift or swap elements, alongsid
Allows configuration of available handles for resizing elements and defines draggable item behaviors.
EaselJS is a JavaScript library for creating interactive 2D graphics and animations using the HTML5 Canvas element. It functions as a 2D animation framework, a canvas scene graph manager, and an interaction wrapper for detecting and responding to mouse and touch events. The library features a rendering pipeline that utilizes WebGL to increase the drawing performance of bitmap and cached content. It organizes visual elements into a hierarchical display list, allowing nested groups of 2D graphics objects to be transformed and animated as single units. Its capabilities cover the rendering of ve
Provides utilities for detecting and responding to mouse and touch input events across canvas objects.
Tabulator is an interactive data table library and virtual DOM data grid used to create high-performance tables from JSON or arrays. It functions as a hierarchical data viewer and a spreadsheet interface component, capable of rendering thousands of records efficiently through viewport-based virtualization and progressive loading. The library distinguishes itself by providing a full spreadsheet interface mode with multi-sheet management, cell range selection, and bulk copy-paste capabilities. It supports complex data architectures, including nested data field mapping, expandable tree structure
Triggers custom functions when users interact with cells within specific columns.
Ce projet est une bibliothèque de tableau croisé dynamique JavaScript et un processeur de données côté client. Il fournit une interface interactive pour transformer des jeux de données bruts en tableaux résumés, cartes thermiques et graphiques, permettant une analyse de données basée sur le navigateur sans serveur backend. La bibliothèque se distingue par une interface glisser-déposer pour l'exploration dynamique des données et la capacité de dériver de nouveaux attributs via le regroupement de dates ou une logique personnalisée. Elle prend en charge un rendu de données flexible en convertissant les résultats analysés en tableaux HTML ou en représentations graphiques en utilisant des bibliothèques de graphiques intégrées ou tierces. Le système couvre un large éventail de capacités analytiques, y compris l'agrégation de données statistiques, l'importation de données multi-formats depuis CSV et JSON, et l'exportation de vues vers des valeurs séparées par des tabulations. Il inclut également une gestion d'état pour sérialiser les configurations de mise en page et une couche de localisation pour le formatage régional des langues et des nombres.
Executes custom callback functions when clicking a cell to reveal the underlying raw records.
Leafer UI est un moteur de rendu HTML5 canvas haute performance et une bibliothèque de graphiques vectoriels 2D. Il utilise un arbre de scène hiérarchique pour gérer les formes, les chemins et le texte, fournissant une boîte à outils pour construire des applications canvas interactives et des toiles infinies expansives. Le moteur est conçu comme une boîte à outils canvas multiplateforme qui découple la logique centrale de l'API de dessin, lui permettant de fonctionner dans des environnements web, mobiles, serveurs et mini-programmes. Il se distingue en fournissant des outils spécialisés pour le développement d'éditeurs graphiques interactifs, incluant la détection de collision (hit detection), la propagation d'événements et les contrôles de transformation. Sa surface de capacité couvre le rendu de formes vectorielles, la création de chemins complexes et les animations de mouvement. Le framework inclut un moteur de mise en page avec un modèle de boîte flexible, une traduction d'espace de coordonnées pour un positionnement précis, et la prise en charge du rendu hors écran multi-threadé dans les web workers. Il fournit également des outils pour la gestion de scène, le masquage d'éléments et l'exportation du contenu canvas vers des images ou JSON. La bibliothèque peut être intégrée via une balise script standard ou utilisée au sein de frameworks réactifs comme React, Vue et Nuxt.
Implements pixel-perfect hit detection to determine how complex visual elements respond to pointer events.
Ce projet est un framework complet pour le développement d'applications iOS, centré sur la construction d'applications mobiles qui présentent des composants d'interface utilisateur personnalisés, une gestion de tâches asynchrone et une persistance de données locale. Il sert de base de connaissances technique pour l'ingénierie logicielle, fournissant des outils pour organiser et publier des analyses architecturales et des notes au format Markdown. Le framework se distingue par une couche de stockage robuste basée sur des documents qui utilise des enregistrements au format BSON pour effectuer des opérations CRUD au sein d'un magasin de documents NoSQL. Il fournit des capacités d'intégration système étendues, incluant une communication spécialisée par extension d'application, le passage de messages entre bacs à sable et la présentation native de feuilles de partage, permettant une interaction transparente entre l'application hôte et les services au niveau du système. Le projet couvre une large surface de capacités, incluant une gestion avancée de la concurrence avec synchronisation thread-safe, le déchargement du rendu UI en arrière-plan pour maintenir la réactivité et une prise en charge complète de l'internationalisation. Il inclut également des utilitaires axés sur les développeurs pour la génération de types statiques, le mapping automatique de ressources et la construction de prototypes interactifs, aux côtés d'outils spécialisés pour la surveillance de balises géographiques et la génération de graphiques adaptatifs.
Maps custom function triggers to specific interactions within data cells to handle button events.
Fusuma est un service d'arrière-plan pour Linux qui surveille les entrées multitouch brutes des trackpads pour déclencher des actions système définies par l'utilisateur. Il fonctionne comme un moteur de reconnaissance de gestes qui traduit les balayages et les pincements en commandes shell, raccourcis clavier et contrôles de gestionnaire de fenêtres. Le projet se distingue par une architecture modulaire de plugins qui permet l'extension dynamique des capacités de reconnaissance de gestes et des comportements système personnalisés. Il offre un contrôle granulaire sur le traitement des entrées en appliquant un filtrage spécifique au périphérique et un réglage de sensibilité, garantissant que les gestes sont reconnus en fonction de seuils précis de distance et de temps. Le moteur prend en charge des flux d'interaction complexes en combinant des motifs de gestes avec des états de touches modificatrices et des portes logiques. Cela permet l'exécution conditionnelle de commandes et la gestion automatisée des fenêtres ou des espaces de travail. Le logiciel fonctionne comme un démon persistant, maintenant la surveillance des entrées à travers les sessions utilisateur tout en offrant des options de configuration pour les paramètres matériels du trackpad.
Processes simultaneous multiple-finger inputs to translate complex touch patterns into system actions.
bqplot is an interactive data visualization library for Jupyter notebooks. It implements a grammar of graphics model, allowing users to build complex 2D charts by combining marks, scales, and axes. The library distinguishes itself with specialized toolkits for financial charting, such as OHLC candlesticks and time-series analysis, and geographic data visualization, including choropleths and custom map projections for TopoJSON and GeoJSON data. It enables deep interaction through tools like lasso selection, rectangular brushing, and the ability to manually manipulate plot points or line data.
Provides interaction callbacks mapped to specific grid cells in heatmap visualizations.