# lapce/floem

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/lapce-floem).**

4,020 stars · 194 forks · Rust · mit

## Links

- GitHub: https://github.com/lapce/floem
- Homepage: https://lap.dev/floem/
- awesome-repositories: https://awesome-repositories.com/repository/lapce-floem.md

## Topics

`native` `rust` `ui`

## Description

Floem is a native desktop UI framework and cross-platform toolkit for building high-performance user interfaces. It functions as a reactive UI library that uses a signal-based state management system to automatically synchronize the interface with data changes via lightweight observable primitives.

The framework utilizes a GPU-accelerated rendering engine to ensure visual consistency and high performance across different desktop operating systems. It features a layout engine based on flexible box and grid models to create responsive screens that adapt to various window sizes.

The toolkit covers a broad range of interface development capabilities, including component styling, theme customization, and the creation of visual transitions using keyframe animations and spring-based easing. It also includes diagnostic tooling for analyzing the view tree and layout properties to identify visual bugs.

## Tags

### Operating Systems & Systems Programming

- [GPU-Accelerated UI Rendering](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/graphics-acceleration/gpu-accelerated-ui-rendering.md) — Utilizes a GPU-accelerated rendering engine to ensure high performance and visual consistency across desktop operating systems.

### User Interface & Experience

- [Cross-Platform UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/cross-platform-ui-frameworks.md) — Provides a framework for building high-performance native user interfaces across multiple desktop operating systems. ([source](https://cdn.jsdelivr.net/gh/lapce/floem@main/README.md))
- [Desktop UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/vector-graphics-rendering/desktop-ui-frameworks.md) — Provides a comprehensive framework for building hardware-accelerated, cross-platform native desktop user interfaces.
- [Cross-Platform Desktop Toolkits](https://awesome-repositories.com/f/user-interface-experience/cross-platform-desktop-toolkits.md) — Offers a native-feeling desktop toolkit with a unified layout and rendering model across platforms.
- [Flexbox Layout Engines](https://awesome-repositories.com/f/user-interface-experience/flexbox-layout-engines.md) — Implements a layout engine using flexible box and grid systems for responsive desktop interface design.
- [Flexible Grid Layouts](https://awesome-repositories.com/f/user-interface-experience/flexible-grid-layouts.md) — Positions interface elements using flexible box and grid systems to create responsive screens. ([source](https://cdn.jsdelivr.net/gh/lapce/floem@main/README.md))
- [Hardware-Accelerated UI Transitions](https://awesome-repositories.com/f/user-interface-experience/hardware-accelerated-ui-transitions.md) — Provides a hardware-accelerated engine to ensure smooth, high-performance native interface transitions and rendering.
- [Reactive State Management](https://awesome-repositories.com/f/user-interface-experience/reactive-state-management.md) — Synchronizes the user interface with data changes automatically using a lightweight signal-based system. ([source](https://cdn.jsdelivr.net/gh/lapce/floem@main/README.md))
- [Reactive UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/reactive-ui-frameworks.md) — Offers a reactive framework that automatically synchronizes the user interface with application state changes.
- [Responsive Layout Adapters](https://awesome-repositories.com/f/user-interface-experience/responsive-layout-adapters.md) — Implements responsive layout adapters that adjust dimensions based on window size changes.
- [Signal-Based Reactivity](https://awesome-repositories.com/f/user-interface-experience/signal-based-reactivity.md) — Synchronizes the user interface with data changes automatically using a lightweight signal-based state management system.
- [Diagnostic Tooling](https://awesome-repositories.com/f/user-interface-experience/composition-hierarchies/view-hierarchy-composition/view-hierarchies/diagnostic-tooling.md) — Provides diagnostic tools for analyzing the internal view tree and layout properties to identify and fix visual bugs.
- [UI Animations](https://awesome-repositories.com/f/user-interface-experience/ui-animations.md) — Creates smooth visual transitions between states using keyframe animations and spring-based easing. ([source](https://cdn.jsdelivr.net/gh/lapce/floem@main/README.md))
- [Visual Layout Auditors](https://awesome-repositories.com/f/user-interface-experience/visual-layout-editors/visual-layout-auditors.md) — Provides diagnostic tools to analyze the view tree and layout properties to identify and fix visual bugs. ([source](https://cdn.jsdelivr.net/gh/lapce/floem@main/README.md))

### DevOps & Infrastructure

- [Native Desktop UI Frameworks](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-tooling/native-desktop-ui-frameworks.md) — Provides a framework for building high-performance desktop UIs using non-browser architectures.

### Graphics & Multimedia

- [GPU-Accelerated UI Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/gpu-accelerated-ui-rendering.md) — Implements a rendering layer that leverages GPU acceleration for high-performance, low-latency desktop interface display.

### Part of an Awesome List

- [Component Styling](https://awesome-repositories.com/f/awesome-lists/devtools/ui-styling-and-themes/component-styling.md) — Enables customization of the look and feel of interface elements using specific style attributes. ([source](https://cdn.jsdelivr.net/gh/lapce/floem@main/README.md))
