9 Repos
Patterns for synchronizing input element values with component state.
Distinguishing note: Focuses on the state-synchronization pattern rather than general form management.
Explore 9 awesome GitHub repositories matching user interface & experience · Controlled Components. Refine with filters or upvote what's useful.
Preact is a lightweight declarative user interface library designed for building high-performance web applications. It utilizes a component-based architecture where interfaces are defined as functional or class-based units, relying on a virtual DOM to perform efficient state reconciliation and updates. By prioritizing a minimal footprint, the library enables developers to create modular, predictable, and testable user interfaces while maintaining compatibility with standard browser APIs. The library distinguishes itself through a reactive state engine that leverages signals to track dependenc
Supports controlled components that synchronize input values with state via explicit property updates.
Formik is a React form management library and state management tool. It serves as a client-side form validator for checking user entries against defined rules and managing associated error messages before submission. The library synchronizes user input values across multiple fields into a single object for retrieval and manipulates the transition of form data from initial entry through validation and final submission. It provides capabilities for tracking complex form state, managing form submissions, and validating user inputs to ensure data integrity.
Provides the logic to synchronize internal form state with input elements using the controlled component pattern.
Draft-js is a framework for building customizable rich text editors within React applications. It functions as a content editable framework that separates the underlying data model from the visual rendering layer, acting as a rich text content engine to manage complex text data and formatting. The project utilizes an immutable state management system to ensure consistent updates and predictable undo history. It manages editor state through persistent data structures, providing an immutable data state manager to prevent accidental mutation. The framework includes capabilities for high perform
Binds the editor's internal state to React via a controlled component interface for external state management.
Implements controlled-uncontrolled state patterns for UI components, enabling flexible data flow integration.
Leva ist ein React-GUI-Kontrollpanel und Echtzeit-Parameter-Editor, der verwendet wird, um den Anwendungsstatus und Variablen zu überwachen und anzupassen, ohne den Code zu ändern oder die Seite neu zu laden. Es fungiert als dynamischer Status-Debugger und erweiterbare Eingabebibliothek, die eine visuelle Schnittstelle für das Feintuning numerischer, boolescher und Textwerte innerhalb einer laufenden Webanwendung bietet. Das Projekt zeichnet sich durch ein Plugin-System aus, das die Erstellung benutzerdefinierter Eingabekomponenten und spezialisierter Verhaltensweisen zur Unterstützung einzigartiger Datentypen ermöglicht. Es nutzt Typinferenz, um Daten automatisch dem passenden visuellen Widget zuzuordnen, wobei dieses Mapping überschrieben werden kann, um spezifische Eingabetypen zu erzwingen. Die Schnittstelle unterstützt diverse Eingabekategorien, einschließlich numerischer Bereiche, Vektoren, Farbwähler und Medien-Upload-Felder. Steuerelemente können in hierarchischen Ordnern organisiert, basierend auf anderen Werten bedingt angezeigt und mit externen Datenspeichern synchronisiert werden. Das System überwacht zudem den Bearbeitungslebenszyklus und ermöglicht Callbacks, wenn Benutzer Interaktionen starten oder beenden, um die Performance für rechenintensive Operationen zu optimieren.
Allows updating the control panel's state programmatically via getter and setter methods from external application logic.
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
Delegates all state management to the parent via callbacks, implementing a fully controlled component pattern.
ComponentKit is a declarative UI framework for building iOS interfaces through composition of small, reusable components. It provides a structured approach to constructing user interfaces where each component is defined as an immutable, pure function of its inputs, enabling predictable rendering and state management. The framework supports both stateless and stateful components, with controllers that can be attached to manage persistent state across component updates. The framework distinguishes itself through its component architecture that emphasizes explicit data flow and compile-time safe
Allows controllers to trigger component state changes by calling update methods with new values.
Zag ist eine Headless-UI-Zustandsmaschinenbibliothek, die ungestylte Komponentenlogik bereitstellt, um konsistentes Verhalten über verschiedene Rendering-Engines hinweg sicherzustellen. Sie fungiert als Toolkit zur Modellierung komplexer User-Interface-Interaktionen unter Verwendung von Statecharts und entkoppelt die zugrunde liegende Logik und Accessibility-Attribute vom visuellen Styling. Die Bibliothek ist framework-agnostisch und nutzt spezialisierte Adapter, um ihre Zustandsmaschinenlogik mit verschiedenen JavaScript-Bibliotheken wie React, Solid, Vue und Svelte zu verbinden. Dieser Ansatz ermöglicht es Entwicklern, ein einheitliches Interaktionsmodell beizubehalten, während sie jede CSS- oder Styling-Lösung durch zustandsgesteuerte Datenattribute anwenden können. Zag deckt ein breites Spektrum an funktionalen Bereichen ab, einschließlich umfassendem Accessibility-Management für Tastaturnavigation und ARIA-Attribute sowie eine riesige Sammlung interaktiver Primitiven. Dazu gehören Input-Controls, Navigationselemente wie Menüs und Tabs, Overlay-Komponenten wie Dialoge und Popovers sowie komplexe Medienhandhabung für Bildzuschnitt und Signaturerfassung. Es bietet zudem Utilities für hierarchisches Datenmanagement, asynchrone Listenbehandlung und ein System zur Konstruktion geführter Produkttouren.
Allows external controllers to update machine context and state through programmatic bindings and initial properties.
react-mosaic ist ein React-Tiling-Window-Manager, der verwendet wird, um Komponenten in einem in der Größe veränderbaren Raster aus Fenstern und Tab-Containern zu organisieren. Es bietet ein Layout-System mit veränderbaren Split-Panes und einem verschiebbaren Fenster-Orchestrator zur Anordnung von Inhalten in verschachtelten Zeilen und Spalten. Das System enthält eine serialisierbare Layout-Engine, die Fensteranordnungen in JSON konvertiert, was die Persistenz und Wiederherstellung von Arbeitsbereichskonfigurationen über Sitzungen hinweg ermöglicht. Es unterstützt eine Tab-basierte Arbeitsbereichsoberfläche, in der mehrere Panels in einzelnen Bereichen mit umschaltbaren Headern gruppiert sind. Das Projekt deckt umfassendes Layout-Management durch programmatische Steuerung und automatisiertes Tiling ab, einschließlich Drag-and-Drop-Neuanordnung und Neuausrichtung der Fensterreihenfolge. Es bietet zudem UI-Anpassungsoptionen für Fenster-Toolbars, Tab-Header und das Rendering von leeren Zuständen.
Provides a controlled state interface to synchronize the internal layout tree with external React state.