19 dépôts
Utilities for disabling document scrolling during modal or overlay display.
Distinct from Scroll Restoration: Distinct from Scroll Restoration: focuses on active scroll locking for UI overlays rather than navigation-based scroll position recovery.
Explore 19 awesome GitHub repositories matching user interface & experience · Scroll Locking. Refine with filters or upvote what's useful.
react-use is a collection of reusable state and effect hooks for managing common logic in React applications. It serves as a comprehensive library for implementing state management patterns and wrapping various browser APIs into consistent hook interfaces. The project provides a specialized toolkit for DOM interaction and browser API integration, allowing components to track element dimensions, manage cookies, and monitor hardware sensors. It includes a suite of animation and timing utilities for physics-based numeric interpolation and frame-synced state updates. Beyond basic state managemen
Deno-inspired prevention of the body element from scrolling when modals or overlays are active.
fullPage.js is a JavaScript full-screen scrolling library and layout engine used to create websites composed of vertical sections and horizontal slides that snap to the viewport. It provides a system for organizing web content into full-screen pages with automatic snapping behavior. The library distinguishes itself through a WebGL transition framework and visual storytelling tools, enabling cinematic effects such as 3D rotations, parallax backgrounds, fading, and water distortion during navigation. It also features a responsive adaptation system that can switch from automatic snapping to stan
Modifies scrolling configurations in real time to switch between automatic snapping and manual scrolling.
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
Locks document scroll position during active modal or overlay displays to prevent background movement.
This project is a macOS input remapper and mouse customizer designed to assign custom actions and system-wide gestures to mouse button presses and movements. It functions as a mouse gesture manager and scroll enhancer, enabling the emulation of multi-finger trackpad motions and providing omnidirectional precision scrolling. The utility distinguishes itself by allowing independent scroll direction settings for a mouse without altering global trackpad configurations. It further implements a momentum-based algorithm to replace discrete scroll steps with smooth, fluid movement. The software cove
Enables toggling precision scrolling or zooming by holding specific keyboard modifier keys.
GoJS is a JavaScript diagramming library and canvas-based visualization engine used to build interactive flowcharts, organizational charts, and network diagrams. It functions as a data-driven framework that binds JavaScript data models to visual elements, enabling bidirectional synchronization between the underlying data and the graphical representation. The library features a comprehensive graph layout engine capable of automatically arranging nodes into trees, grids, circles, or force-directed layouts. It distinguishes itself through a template-based system for generating visual parts and a
Locks the diagram to prevent scrolling, zooming, or dragging parts outside a fixed area.
usehooks-ts is a comprehensive collection of reusable TypeScript-based hooks designed for managing state, DOM events, and browser API interactions within React applications. It provides a typed library of functions to handle common frontend patterns and side effects. The project distinguishes itself by offering specialized hooks for browser integration, including tools for interacting with the system clipboard, managing local and session storage persistence, and loading external scripts. It also includes utilities for responsive UI development, such as tracking media queries, window dimension
Implements a utility to disable page scrolling when modal overlays or full-screen menus are active.
React Autosuggest is a fully controlled React component that provides an autocomplete input with a dropdown of suggestions as the user types. It delegates all state management to the parent component through callbacks, making it compatible with state management patterns like Flux or Redux. The component implements WAI-ARIA accessibility patterns, including keyboard navigation with arrow keys, Enter, and Escape, along with live region integration for screen reader announcements. The component offers extensive customization through render-prop functions, allowing developers to replace the defau
Isolates scroll within the suggestions container to prevent page scrolling at boundaries.
OpenLogi est un outil de configuration matérielle « local-first » et un mappeur d'entrées multi-applications écrit en Rust. Il permet de personnaliser les périphériques utilisant le protocole HID++, offrant aux utilisateurs la gestion des paramètres de leurs appareils sans dépendre de comptes cloud ou de télémétrie. Le système se distingue par son approche « local-first », stockant toutes les configurations d'appareils et les mappages de boutons dans des fichiers texte brut. Cette conception facilite l'édition manuelle et le contrôle de version, tout en garantissant que les commandes sont envoyées directement dans la mémoire du matériel. La suite couvre plusieurs domaines de gestion matérielle, notamment le remappage des boutons physiques et la configuration des préréglages de sensibilité DPI. Elle inclut un système pour créer des profils spécifiques aux applications qui basculent automatiquement les raccourcis selon la fenêtre active, ainsi que des contrôles pour le comportement de la molette et la surveillance de l'état de la batterie. Une interface en ligne de commande est fournie pour gérer l'inventaire matériel et récupérer les données de diagnostic des appareils connectés.
Toggles between different scrolling behaviors, such as ratchet and free-flow modes, in real time.
smartTable est un composant de grille de données et un framework de vue de table pour Android. Il fonctionne comme une bibliothèque d'interface utilisateur pilotée par annotations qui utilise des marqueurs de classe et de champ pour mapper automatiquement les modèles de données vers des colonnes visuelles et définir les propriétés de table. Le projet se distingue par une intégration profonde avec les feuilles de calcul, fournissant des outils pour importer et exporter des données vers et depuis des fichiers Excel tout en préservant le formatage des cellules, les styles, les couleurs et l'alignement. Il dispose également d'un système de rendu basé sur le canvas qui prend en charge des mises en page de grille complexes avec des cellules fusionnées, des en-têtes figés et le verrouillage de colonnes. La bibliothèque couvre un large éventail de capacités de gestion de données, incluant le tri, l'agrégation et le calcul de statistiques de colonne. Elle gère de grands jeux de données via la pagination virtuelle, les contrôles de zoom et le formatage conditionnel des cellules pour maintenir la lisibilité et la performance. Le framework est implémenté en Java pour les applications Android.
Enables freezing of row or column indices to maintain header visibility during bidirectional scrolling.
Ce projet est une collection complète d'extraits de code réutilisables, de hooks personnalisés et de patterns d'implémentation pour construire des interfaces utilisateur avec React. Il sert de bibliothèque d'exemples courts conçus pour résoudre des tâches de développement courantes, allant de la gestion d'état à l'intégration DOM. La collection fournit un large éventail d'utilitaires spécialisés pour interagir avec les API du navigateur, incluant le suivi des dimensions de la fenêtre, l'évaluation des media queries et le monitoring du statut en ligne. Elle inclut également des guides pratiques et des extraits pour l'optimisation des performances, tels que la mémoïsation, le lazy loading et le debouncing de changement d'état. Les domaines de capacité étendus couvrent l'implémentation de composants UI interactifs comme les modales, les carrousels et les interfaces à onglets, ainsi que des patterns architecturaux pour la récupération de données, la persistance d'état et la vérification de mise à jour asynchrone. La bibliothèque inclut également des utilitaires pour la gestion de formulaires, la gestion d'événements et la synchronisation de routage via le suivi d'état d'URL.
Prevents page body scrolling when modals or overlays are active.
bootstrap-modal est une bibliothèque JavaScript qui étend le composant modal Bootstrap standard pour fournir des capacités avancées de redimensionnement, d'empilement et d'animation. Il fonctionne comme un chargeur modal AJAX, récupérant du contenu distant et mettant à jour les vues de manière asynchrone sans nécessiter de rafraîchissement de la page du navigateur. Le projet fournit un gestionnaire de superposition empilable pour organiser de multiples fenêtres qui se chevauchent avec une gestion d'événements synchronisée et un ordre de couche correct. Il inclut également un composant d'interface utilisateur responsive qui ajuste automatiquement les dimensions et les contraintes en fonction de la taille actuelle de la fenêtre. La bibliothèque couvre des domaines fonctionnels plus larges incluant les workflows modaux imbriqués, le verrouillage du défilement en arrière-plan et les animations de transition modale. Elle incorpore en outre des mécanismes de feedback visuel tels que des indicateurs d'état de chargement et des animations d'interaction pour signaler les processus d'arrière-plan actifs.
Disables document scrolling to prevent background page movement while a modal overlay is active.
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.
Allows developers to temporarily disable pull-to-refresh or pull-up-loading actions to prevent accidental triggers.
Ce projet est une bibliothèque React pour créer des vues coulissantes tactiles et des commutateurs de vue interactifs. Elle fournit des composants pour construire des carrousels de contenu et des curseurs qui prennent en charge la navigation horizontale ou verticale via le toucher, les gestes de balayage de la souris et les entrées clavier. La bibliothèque inclut un composant de curseur virtualisé qui ne rend que les vues visibles pour maintenir la performance avec de grands ensembles de contenu. Elle prend en charge des comportements visuels spécialisés tels que les transitions coverflow en trois dimensions, la navigation circulaire pour une boucle infinie et les effets de résistance aux bords lors de l'atteinte des limites d'une séquence. Des capacités supplémentaires couvrent la rotation automatique du contenu sur des minuteries définies, des animations de hauteur de conteneur dynamiques pour correspondre aux dimensions des diapositives actives et la possibilité d'imbriquer des conteneurs balayables pour une navigation hiérarchique. Elle prend également en charge le défilement vertical hybride pour permettre le défilement de page interne au sein d'une interface balayable.
Enables internal vertical page scrolling within a container that is also navigable via horizontal swipe gestures.
LibreraReader is a multi-format e-book reader and digital library manager designed for mobile and desktop devices. It functions as a customizable document renderer and a text-to-speech document player that converts written text into spoken audio via a configurable speech engine and integrated media player. The project distinguishes itself through a high degree of visual and functional customization, including the ability to inject custom CSS for styling overrides and the use of pluggable rendering engines to balance speed and stability. It includes specialized navigation tools such as a verti
Restricts document navigation to vertical scrolling only, preventing accidental horizontal movement.
RmlUi est un moteur de rendu d'interface utilisateur multiplateforme et une bibliothèque middleware qui permet la création d'interfaces utilisateur en utilisant un sous-ensemble de HTML et CSS. Il fonctionne comme une couche agnostique de rendu conçue pour intégrer la mise en page et le stylage standard du web dans des moteurs de jeu personnalisés et des applications embarquées. Le framework se distingue par son intégration de Lua pour la logique dynamique et le contrôle, ainsi qu'un kit d'outils spécialisé pour le rendu d'images SVG et d'animations Lottie. Il utilise un backend de rendu enfichable qui découple la génération de géométrie de l'affichage final, lui permettant de générer de la géométrie texturée pour divers pipelines graphiques. Le système couvre un large éventail de capacités, incluant un moteur de mise en page en boîte (box-model), un moteur de style en cascade et une liaison de données pour synchroniser les modèles avec les vues. Il fournit une gestion complète des entrées pour la souris, le clavier et le tactile, ainsi que des services d'internationalisation pour la traduction de texte basée sur la locale. Les fonctionnalités supplémentaires incluent la mise à l'échelle haute résolution (DPI), la composition alpha basée sur les couches et un ensemble de composants interactifs comme des curseurs de plage et des menus déroulants. La source peut être compilée en binaires WebAssembly pour une exécution dans les navigateurs web.
Prevents scroll events from propagating beyond a container when its scroll boundary is reached.
body-scroll-lock est une bibliothèque de verrouillage du défilement DOM et un contrôleur de défilement multi-navigateur. Elle fournit des utilitaires pour désactiver le défilement de la page tout en maintenant la possibilité de défilement pour des éléments imbriqués spécifiques sur différents navigateurs et appareils. Le projet fonctionne comme un utilitaire de prévention des décalages de mise en page (layout shift) et un gestionnaire de défilement pour modales d'interface web. Il inclut des mécanismes pour ajouter du padding au corps de page (body) lorsque les barres de défilement sont supprimées, afin d'éviter les scintillements horizontaux et les décalages de contenu. La bibliothèque couvre la gestion du défilement pour la navigation mobile et les interactions modales, permettant à des conteneurs spécifiques de rester défilables tandis que le reste du corps du document est figé.
Provides utilities for disabling document scrolling specifically during modal or overlay display.
Miryoku is a universal mapping specification for ergonomic and orthogonal keyboards. It provides a standardized set of key assignments and layers designed to decouple logical input intent from specific physical hardware, ensuring consistent key placement across different firmware and devices. The system focuses on home-row navigation, placing cursor movement, mouse emulation, and system functions on the home row to minimize hand travel. It utilizes a layer-based input strategy with toggleable and modal layers to manage numerals, symbols, and media controls without relying on complex modifier
Uses toggleable and modal layers to manage numerals, symbols, and numbers without complex modifier chords.
Embed PDF Viewer is a browser-based PDF rendering library that uses a WebAssembly port of the PDFium engine to display documents entirely on the client side, with no server-side processing required. It provides a framework-agnostic core engine layer that manages the PDF document lifecycle, memory allocation, and WebAssembly resource cleanup, with dedicated integration hooks for React and Vue 3 that handle initialization, document loading, and reactive state management. The library offers both a pre-built, embeddable viewer that can be inserted into any web page with a single initialization ca
Configures scroll behavior and page display modes like single page or continuous scroll.
Offers both horizontal page-turn and vertical scroll reading modes, each saving progress automatically.