25 dépôts
Utilities for making DOM elements draggable, rotatable, or scrollable with support for constraints and axis locking.
Distinct from Interactive UI Elements: Distinct from Interactive UI Elements: focuses on low-level interaction primitives like dragging and rotation rather than high-level UI components.
Explore 25 awesome GitHub repositories matching user interface & experience · Interaction Controllers. Refine with filters or upvote what's useful.
This project is a curated knowledge base and technical reference for professional web styling. It serves as a comprehensive guide to modern CSS best practices, focusing on techniques that leverage native browser capabilities to create efficient, maintainable, and scalable stylesheets. The collection emphasizes the use of declarative style logic and modern layout engines to replace brittle, imperative approaches. By prioritizing native pseudo-class state management, logical property mapping, and relative unit scaling, the guide demonstrates how to build responsive interfaces that remain consis
Provides CSS patterns to restrict pointer events on non-interactive or loading components.
GSAP is a comprehensive JavaScript animation library designed for orchestrating complex motion sequences and interactive user interfaces. It provides a robust property-interpolation engine that calculates intermediate values for CSS styles, attributes, and numeric properties, enabling smooth visual transitions across web elements. The framework is built on a core architecture that manages animation lifecycles, timeline-based sequence orchestration, and virtual property interception to ensure precise control over motion. The library distinguishes itself through a modular, plugin-based extensib
Enables DOM elements to be draggable, rotatable, or scrollable with support for constraints and custom trigger areas.
React Grid Layout is a toolkit for building draggable, resizable, and responsive dashboard interfaces. It functions as a coordinate-based grid system that reconciles component positions and dimensions through declarative metadata, allowing developers to manage complex collections of UI elements that users can interact with directly. The library distinguishes itself through an automated packing algorithm that maintains structural integrity by shifting elements to fill gaps and resolving overlaps. It supports responsive design by monitoring container width changes against pre-defined breakpoint
Allows developers to lock specific widgets in place to prevent user-initiated movement or resizing.
This project is a cross-platform user interface framework that maps mobile-native component primitives to standard web elements. It enables developers to build consistent applications that function across both mobile and web environments by providing a unified library of components and shared logic. The framework distinguishes itself through a specialized style engine that converts JavaScript object-based declarations into optimized, scoped CSS at runtime. It also features a responsive layout engine that implements a flexbox-based system, ensuring that interfaces adapt dynamically to differen
Control exclusive pointer access between overlapping views to ensure that complex gestures and touch events propagate correctly without conflicting with other active elements on the screen.
Niri is a Wayland compositor and tiling window manager designed for Linux systems. It functions as a display server that organizes application windows into a scrollable, column-based layout, providing a structured environment for managing graphical sessions, input routing, and hardware output. The project distinguishes itself through a declarative configuration engine that enables live-reloading of settings, allowing users to modify window rules, input bindings, and visual appearance without restarting the session. It features a physics-based animation system that uses spring-based curves to
Restricts user interactions and keybindings during session locks to maintain system security.
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
Interacts directly with system hardware to query or modify the Caps Lock state.
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
Updates document titles, favicons, and body scroll locks to manage the visual state of the webpage.
m-cli is a suite of command line utilities designed for macOS system administration, hardware management, networking, and security permissions. It provides a terminal-based interface to configure system preferences and manage hardware components. The project allows for the direct control of physical system components, such as fan speeds, battery states, and display brightness. It also provides utilities for network administration, including the management of Wi-Fi connections, DNS settings, VPNs, and firewall rules. The tool covers a broad range of administrative capabilities, including powe
Adjusts the state of physical components like fans, batteries, and Bluetooth adapters via terminal.
This repository contains the HTML specification, which defines the core standards for web page structuring, content organization, and document rendering. It establishes the fundamental algorithms for state-machine-based tokenization, tree construction for the document object model, and origin-based security isolation. The specification provides a framework for defining custom elements with independent lifecycles and registries. It also details the requirements for cross-document communication, session history management, and the synchronization of interface properties with content attributes.
Implements the ability to make an element and all its descendants inert to block interaction.
This project is a QML desktop shell designed for desktop environment orchestration and interface customization. It functions as a system status dashboard and a declarative user interface for managing system hardware, window metadata, and user sessions. The shell features a dynamic theme generator that extracts dominant colors from wallpapers to automatically synchronize the global visual color palette. It utilizes an inter-process communication system to orchestrate shell functions and a hierarchical JSON configuration framework to manage global and per-monitor interface layouts. The system
Secures the current user session by blocking all input until successful authentication occurs.
Blink is a mobile terminal platform for iOS that combines an SSH and Mosh client with a local shell emulator, snippet manager, and SSH key storage. It renders terminal output using Chromium's HTerm engine for fast display and maintains persistent remote sessions across network changes through the Mosh protocol. The platform supports SSH key-based authentication, WebAuthn hardware security keys, and SOCKS5 proxy tunneling for secure remote access. The terminal environment is built around gesture-based session navigation, allowing users to switch between multiple shells with swipe and pinch ges
Blink Shell disconnects all active SSH sessions when the device is moved significantly to prevent unauthorized access.
Rambox is a desktop application that consolidates multiple web-based messaging and email services into a single window, allowing users to manage all their communications from one unified interface. It embeds each service inside an isolated web view, rendering the original web app without modification, and organizes them as draggable tabs in a persistent bar that supports reordering, disabling, and layout switching without restarting. The application distinguishes itself through several customization and security capabilities. Users can inject custom JavaScript or CSS into any service's web vi
Secures the application with a master password that auto-locks after inactivity to prevent unauthorized access.
Vue Flow is a TypeScript library for building interactive node-based editors and flowcharts. It provides the core infrastructure for creating diagrams where users can drag, select, and connect nodes with edges, supporting pan and zoom navigation of the canvas. The library offers extensive control over graph behavior and appearance, including the ability to customize connection lines, define custom edge types, and configure zoom constraints and viewport defaults. It includes built-in components like a minimap for navigation, zoom controls, and a fit-view button, along with features for node re
Toggles interactivity on and off for the entire diagram to prevent accidental edits.
CodeIgniter is a PHP web framework built on the Model-View-Controller pattern, designed for building full-stack web applications. It provides a lightweight toolkit with minimal configuration, organizing application logic into controllers, models, and views for clean separation of concerns. The framework includes a fluent query builder for constructing SQL statements programmatically, PSR-4 autoloading with namespace mapping, and a service-based dependency injection container for managing shared class instances. The framework distinguishes itself through its comprehensive set of built-in tools
Provides a method to release session locks early for improved concurrent request handling.
Vorpal est un framework CLI interactif Node.js et une bibliothèque d'interface utilisateur de terminal utilisée pour construire des shells en ligne de commande extensibles. Il fonctionne comme un analyseur de ligne de commande interactif qui convertit l'entrée de chaîne en fonctions exécutables, gérant le cycle de vie des sessions de terminal et le routage des commandes. Le framework se distingue par une architecture d'extension basée sur des plugins qui permet aux modules externes d'enregistrer de nouvelles commandes, des comportements partagés et des suites de commandes complètes dans l'environnement principal. Il prend en charge la création d'environnements shell personnalisés avec des espaces de noms spécialisés et un système pour l'historique utilisateur persistant et le stockage local clé-valeur. Le projet fournit des utilitaires complets pour la gestion des commandes, incluant l'autocomplétion, le support d'alias et des systèmes d'aide programmables. Il inclut également des contrôles d'E/S de terminal pour la modification dynamique des invites, l'interception de la sortie standard et l'invitation interactive de l'utilisateur. La gestion des erreurs est traitée via des écouteurs d'exceptions globaux et des déclencheurs spécifiques pour les entrées utilisateur non correspondantes.
Provides a controller for the terminal display that manages content redrawing and the input/output loop.
Ce projet est un gestionnaire de consentement aux cookies et un outil de conformité RGPD utilisé pour recueillir l'accord des utilisateurs pour les catégories de cookies. Il est implémenté sous forme de plugin JavaScript vanilla qui fonctionne sans frameworks ni dépendances externes. L'outil fournit une interface de consentement multilingue qui détecte automatiquement les paramètres régionaux du navigateur ou du document pour servir du contenu traduit. Il gère les préférences de confidentialité en bloquant les iframes et les scripts tiers jusqu'à ce qu'un consentement explicite de l'utilisateur soit accordé. Le système couvre la personnalisation de la confidentialité du site web via des bannières et des modales configurables, incluant des options pour les styles de mise en page et les thèmes. Il inclut également des capacités pour restreindre l'interaction avec la page jusqu'à ce qu'une décision de consentement soit prise.
Blocks pointer and focus events on the page content until a consent decision has been made.
React Email Editor is a drag-and-drop visual builder for creating responsive email templates, built as a React embeddable component. It also serves as an AI-powered email designer, a collaborative email design tool, and a React component library for composing emails programmatically with JSX. The editor represents designs as structured JSON and supports multi-format rendering for email clients, web pages, and PDF. What distinguishes this editor is its deep AI integration: users can generate full email templates from natural language, rewrite text with chosen intent, produce multiple text vari
Locks specific template elements to prevent end-users from modifying or deleting them.
mescroll est une bibliothèque JavaScript de défilement infini et un gestionnaire de défilement web mobile conçu pour implémenter les modèles de pull-to-refresh et de chargement par le bas. Il fournit un système pour gérer le défilement tactile, gérer les états de pagination et intégrer ces comportements au sein d'applications Vue. La bibliothèque se distingue par un support spécialisé pour les interfaces de chat, permettant le chargement de données en ordre inverse et la capacité d'injecter des données dans une direction inverse pour simuler des historiques de messages. Elle inclut également un cache de défilement persistant pour préserver les décalages verticaux et les données de liste lorsque les utilisateurs naviguent entre différentes vues. Le projet couvre un large éventail de capacités d'interaction et de performance, incluant la suppression de l'effet de rebond natif du navigateur, le chargement différé d'images conscient de la fenêtre d'affichage (viewport) et le positionnement de défilement par programmation. Il fournit en outre des utilitaires pour gérer les états de pagination, personnaliser l'interface utilisateur de chargement et d'état vide, et implémenter la navigation de retour en haut de page.
Provides mechanisms to temporarily lock and ignore touch events to prevent accidental refresh or load triggers.
Il s'agit d'une bibliothèque de visite guidée et d'un framework d'onboarding pour les applications React. Il fournit un système pour créer des visites interactives étape par étape en utilisant des popovers ancrés aux éléments et des outils de masquage visuel pour mettre en évidence des composants d'interface spécifiques. La bibliothèque se concentre sur l'accessibilité, fournissant un support intégré pour les lecteurs d'écran et la navigation au clavier afin d'assurer un onboarding utilisateur inclusif. Elle permet une personnalisation étendue en permettant le remplacement des éléments d'interface par défaut, tels que les badges et les boutons, par des composants React personnalisés. Le framework couvre l'orchestration de la visite via la gestion d'état et le ciblage d'éléments basé sur des sélecteurs. Il inclut des capacités pour le défilement automatique de la fenêtre, la gestion des transitions de popover et la capacité de restreindre l'interaction de l'utilisateur avec l'interface sous-jacente pendant une visite.
Allows blocking user input on highlighted elements during a walkthrough to control the user experience.
This project is a jQuery plugin designed to detect and handle touch gestures on touch-enabled devices. It serves as a touch input handler and mobile gesture interface for identifying interactions such as swipes and pinches within a jQuery environment. The library distinguishes intentional gestures from accidental movements through configurable distance and time thresholds. It includes mechanisms to manage input interference, allowing for the exclusion of specific interactive child elements and the locking of default browser behaviors like scrolling or zooming during an active gesture. The sy
Prevents conflicting browser behaviors like scrolling or zooming while a touch gesture is being tracked.