30 open-source projects similar to facebook/litho, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Litho alternative.
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
Sunflower is a reference implementation designed to demonstrate modern Android development patterns and industry-standard architectural practices. It serves as a comprehensive guide for building functional mobile applications by integrating declarative user interface toolkits with robust data management and navigation systems. The project distinguishes itself by showcasing the transition from legacy view-based systems to modern declarative frameworks. It provides a practical example of how to organize code into distinct layers, manage complex state, and implement dependency injection to ensur
Compose Samples is a collection of reference implementations for the Jetpack Compose UI library, serving as a practical guide for building native Android user interfaces. It demonstrates the use of a declarative framework where Kotlin functions describe layout structures and data dependencies, enabling developers to construct modern, reactive interfaces. The repository highlights architectural patterns that prioritize maintainability and testability, such as layered organization and unidirectional data flow. It showcases how to implement adaptive layouts that automatically adjust to various s
Now in Android is a reference application and framework designed to demonstrate modern development patterns for the Android platform. It provides a comprehensive implementation of a modular architecture, utilizing industry-standard practices to organize codebases into independent components that support long-term maintainability and build performance. The project centers on a reactive, unidirectional data flow model that synchronizes visual components with underlying data states. By employing a declarative toolkit for interface construction, the application ensures that screen layouts update
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
Slint is a declarative user interface framework designed for building native graphical applications across desktop, mobile, and embedded platforms. It utilizes a specialized markup language to define reactive interface components, which are then compiled into optimized machine code to ensure high performance and minimal resource consumption. By separating visual structure from application logic, the framework enables developers to create consistent interfaces that run efficiently on hardware ranging from resource-constrained microcontrollers to high-end desktop systems. The framework distingu
LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system architecture, and mobile performance optimization. It serves as a reference for analyzing the Android boot sequence, process bootstrapping, and system service initialization. The project provides detailed guides on mobile performance, including strategies for reducing memory footprints, identifying memory leaks, and optimizing image decoding. It further covers Android inter-process communication using AIDL and the Binder kernel driver, as well as software architecture manuals
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
cardslib is an Android UI component library and card layout framework. It provides a set of specialized adapters and views designed as an extension for high-performance card rendering within recycling lists. The library distinguishes itself through a reorderable list implementation that supports drag-and-drop item rearrangement and nested content hierarchies. It also includes an interaction system for managing directional swipe constraints and a customizable undo action notification bar. The framework covers a broad range of card-based interface capabilities, including the composition of vis
React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional data flow.
go-app is a WebAssembly frontend framework and UI library for building progressive web apps using the Go programming language. It enables the execution of Go code directly in the browser to manage application logic and client-side views. The framework provides a component-based system for creating reusable interface elements with declarative syntax and automatic state synchronization. It includes a client-side router that maps URL paths to specific interface components to enable navigation within a single-page application. The project covers general frontend development capabilities, includi
Eww is a declarative framework for creating custom graphical desktop widgets and status bars on Linux. It functions as a desktop widget toolkit that operates independently of the window manager, allowing users to define interface elements through a dedicated configuration language and style them using a cascading stylesheet system. The project utilizes a client-server daemon architecture to manage the lifecycle of these components, ensuring that state is maintained across the desktop environment. By leveraging a reactive state binding system, the interface updates automatically in response to
Semantic UI React is a declarative component library that provides native React bindings for the Semantic UI design language. It enables the construction of complex user interfaces through a modular, component-based architecture that maps directly to established design patterns, allowing developers to build consistent web application layouts without manual HTML markup. The library distinguishes itself through a shorthand property system that automatically generates and populates nested child components from data objects, significantly reducing the need for verbose code. It also supports polym
AsyncDisplayKit is an asynchronous UI framework and layout engine for iOS designed to offload layout and rendering operations from the main thread. It functions as a concurrent interface library that handles asynchronous image decoding and UI composition to maintain high frame rates. The project uses a node-based view hierarchy to build thread-safe interface structures on background threads. It includes an intelligent preloading system that predicts scroll direction to trigger data fetching and layout operations for elements before they become visible. The framework covers high-performance m
This library provides a rendering engine that translates declarative component trees into PDF files. It enables the construction of complex document structures using a component-based architecture, allowing developers to define layout, styling, and content programmatically. The system operates across both browser and server-side environments, offering a unified interface for generating structured documents. The project distinguishes itself through a sophisticated layout and rendering pipeline that handles the complexities of document creation. It utilizes a flexbox-based engine for element po
This project is a community-driven directory of open-source Android libraries focused on user interface development. It serves as a centralized knowledge base that organizes high-quality third-party tools into a structured, categorical taxonomy to assist developers in discovering reliable solutions for mobile application design. The repository distinguishes itself by providing a version-agnostic index that links directly to external project resources, bypassing the need for complex dependency management. To facilitate rapid evaluation, each entry is paired with visual asset indexing, includin
Material is a mobile user interface framework designed for building responsive and consistent native applications. It provides a declarative component architecture that allows developers to construct complex interfaces through modular, self-contained elements that manage their own state and rendering logic. The framework distinguishes itself through a constraint-based layout engine that calculates component geometry by solving spatial relationships between elements, ensuring layouts adapt automatically to varying screen sizes. It also features a hierarchical design system that propagates styl
tcell is a Go terminal user interface library and framework for building cell-based applications. It functions as a terminal emulator backend and input processor, utilizing a change-based diffing engine to manage screen state and efficiently render updates. The project is distinguished by its pluggable backend abstraction, which allows terminal interfaces to be rendered across physical terminals or compiled into WebAssembly for web browser display. It provides a virtual screen simulation to enable programmatic event injection and output inspection for automated application testing. Its capab
Recyclerlistview is a cross-platform virtualized list component for React Native and web. It functions as a cell-recycling UI library that reuses a small set of off-screen components by updating their data rather than creating new views for every item. The framework includes a dynamic grid layout engine that supports staggered grids and variable item heights, allowing for instant switching between list and grid view modes. The library provides capabilities for virtual scrolling management, including viewability tracking, sticky headers, and scroll position restoration. It also supports infin
This project is a command-line utility and development framework designed to modify, extend, and customize the Spotify desktop client. It functions as a binary patching engine that injects custom scripts, stylesheets, and interface components directly into the host application, enabling users to alter visual themes and add new functionality. The tool distinguishes itself by providing a comprehensive development environment for building modular extensions and custom applications. It includes a hot-reloading pipeline for rapid iteration, a declarative library for constructing interactive UI pan
The AndroidStaggeredGrid library provides a multi-column, masonry-style grid component for Android applications. It arranges items in a staggered layout where rows contain items of varying heights, similar to a Pinterest-style grid. The library supports dynamic column count configuration and includes built-in item interaction handling through tap event callbacks. Key capabilities include adjustable column counts that can be changed at runtime, separate column configurations for portrait and landscape orientations, automatic scroll position restoration across configuration changes, and an empt
react-native-progress is a collection of visual components for cross-platform mobile applications designed to represent completion percentages and loading states. It provides a set of progress bars, circular indicators, and loading spinners for mobile environments. The library includes specific components for visualizing progress, such as a percentage progress pie, circular progress indicators with inner text, and linear progress bars. For active background processes, it provides animated loading spinners and activity spinners to signal ongoing tasks. These components support task completion
ggez is a 2D game framework for the Rust programming language. It provides a hardware abstraction layer for accessing keyboard, mouse, sound, and graphics hardware, alongside a dedicated game loop manager that synchronizes input processing, state updates, and frame rendering for real-time applications. The framework includes a hardware-accelerated rendering engine for drawing sprites, shapes, and text using shader programs. It also features a resource management system that uses a filesystem abstraction to load and manage game assets from physical directories or compressed archives. Addition
TapTargetView is a set of UI components designed for user onboarding and feature discovery. It provides visual callouts, focus indicators, and markers that direct user attention toward specific screen elements to introduce new or hidden functionality. The system implements Material Design guidelines for its feature discovery UI, ensuring that visual highlights and interactive callouts remain consistent with standardized design specifications. It supports the creation of interactive product tours by chaining multiple interaction points into a sequential path. This is achieved through coordina
Paging view controller with customizable menu in Swift
⚡️A highly customizable, powerful and easy-to-use alerting library for Android.
WobbleView is an implementation of a recently popular wobble effect for any view in your app. It can be used to easily add dynamics to user interactions and transitions.