# rxi/microui

**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/rxi-microui).**

5,525 stars · 349 forks · C · mit

## Links

- GitHub: https://github.com/rxi/microui
- awesome-repositories: https://awesome-repositories.com/repository/rxi-microui.md

## Description

microui is a minimal immediate-mode graphical user interface library written in C, designed for resource-constrained environments such as embedded systems. It operates without dynamic memory allocation and has no external dependencies beyond standard C, making it a self-contained solution for building lightweight interfaces.

The library is delivered as a single header file, simplifying integration into any project. It uses a fixed-allocator heap for all runtime state, guaranteeing deterministic memory use and predictable performance. All drawing is delegated to user-supplied callbacks, keeping the library platform-agnostic and flexible. Its container-stack layout system positions and spaces controls automatically, with a single function to manage rows and columns.

The included controls cover windows, buttons, sliders, text boxes, checkboxes, and word-wrapped labels, providing enough building blocks for simple interactive tools or UI mock-ups. The immediate-mode approach rebuilds the interface each frame from input and drawing commands, retaining no widget tree between frames.

## Tags

### User Interface & Experience

- [Immediate Mode GUI Toolkits](https://awesome-repositories.com/f/user-interface-experience/immediate-mode-gui-toolkits.md) — A minimal C library for building graphical user interfaces using an immediate-mode style without dynamic memory allocation.
- [Immediate Mode UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/immediate-mode-ui-frameworks.md) — "Constructs the interface each frame by processing input and drawing commands in a single pass, with no retained widget tree."
- [Minimal GUI Toolkits](https://awesome-repositories.com/f/user-interface-experience/c-gui-toolkits/c-language-toolkits/minimal-gui-toolkits.md) — Distributing a compact, self-contained GUI library with no external dependencies beyond standard C, suitable for small applications.
- [Embedded UI Toolkits](https://awesome-repositories.com/f/user-interface-experience/embedded-ui-toolkits.md) — A compact GUI toolkit designed for resource-constrained environments and bare-metal embedded systems.
- [GUI Widget Toolkits](https://awesome-repositories.com/f/user-interface-experience/gui-widget-toolkits.md) — Build applications with windows, buttons, sliders, text boxes, checkboxes, and word-wrapped labels. ([source](https://cdn.jsdelivr.net/gh/rxi/microui@master/README.md))
- [Single-File Distributions](https://awesome-repositories.com/f/user-interface-experience/native-c-gui-libraries/single-file-distributions.md) — A self-contained C header and source pair that integrates easily into projects without complex build steps.
- [No-Dependency UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/no-dependency-ui-frameworks.md) — A user interface framework requiring only standard C libraries, with no external dependencies or runtime requirements.
- [Row-and-Column Layouts](https://awesome-repositories.com/f/user-interface-experience/widget-arrangement-systems/row-and-column-layouts.md) — Arrange controls in configurable columns and rows with a single layout function that manages spacing. ([source](https://cdn.jsdelivr.net/gh/rxi/microui@master/README.md))
- [Rendering Callbacks](https://awesome-repositories.com/f/user-interface-experience/input-handling/callback-delegates/rendering-callbacks.md) — "Delegates all drawing to user-supplied callbacks, keeping the library platform-agnostic and output-flexible."
- [Stack-Based Layout Containers](https://awesome-repositories.com/f/user-interface-experience/layout-management/component-layout-containers/stack-based-layout-containers.md) — "Uses a single function to push and pop container regions that automatically position and space nested controls."

### Development Tools & Productivity

- [Single-Header Libraries](https://awesome-repositories.com/f/development-tools-productivity/single-header-libraries.md) — "Delivers the entire library in one C header file, making integration as simple as copying a file with no build system changes."

### Operating Systems & Systems Programming

- [Fixed-Pool Allocators](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/preallocated-memory-pools/fixed-size-memory-pool-managers/fixed-pool-allocators.md) — "Pre-allocates a static memory pool for all runtime state, eliminating malloc and guaranteeing deterministic performance."
