# vurtun/nuklear

**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/vurtun-nuklear).**

14,186 stars · 1,105 forks · C · archived

## Links

- GitHub: https://github.com/vurtun/nuklear
- awesome-repositories: https://awesome-repositories.com/repository/vurtun-nuklear.md

## Topics

`c` `c89` `gui` `imgui` `nuklear` `single-header-lib`

## Description

Nuklear is a portable, header-only immediate mode graphical user interface library written in C. It is designed to function as a lightweight framework for creating interfaces that render directly to hardware, making it suitable for integration into custom graphics engines, embedded systems, and resource-constrained environments.

The library operates by generating abstract draw commands that are converted into vertex buffers, allowing for hardware-accelerated rendering through standard graphics APIs. By utilizing an immediate mode approach, the interface state is defined and updated within the application's render loop, ensuring high performance and responsiveness. The system is entirely platform-agnostic, decoupling input processing and window management from specific operating systems or windowing frameworks.

Users maintain full control over the library's lifecycle through manual memory management, where custom allocators or user-provided buffers can be employed to optimize resource usage. The framework includes comprehensive systems for interface layout management, visual styling through color tables or skinning, and font integration, providing the necessary tools to build consistent and functional graphical controls.

## Tags

### User Interface & Experience

- [Immediate Mode GUI Toolkits](https://awesome-repositories.com/f/user-interface-experience/immediate-mode-gui-toolkits.md) — Provides a lightweight, header-only C library for immediate mode GUI development.
- [Immediate Mode UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/immediate-mode-ui-frameworks.md) — A unified state container tracks windowing, input, and layout data to ensure consistent behavior across diverse hardware and software environments.
- [Cross-Platform UI Toolkits](https://awesome-repositories.com/f/user-interface-experience/cross-platform-ui-toolkits.md) — Provides a portable interface framework that manages windowing, input, and layout without platform dependencies.
- [Graphical User Interfaces](https://awesome-repositories.com/f/user-interface-experience/graphical-user-interfaces.md) — Provides a comprehensive interface context management system for rendering GUIs across diverse platforms. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))
- [Immediate-Mode Rendering](https://awesome-repositories.com/f/user-interface-experience/immediate-mode-rendering.md) — Implements an immediate mode rendering paradigm that rebuilds the interface display state every frame within the application loop. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))
- [Immediate Mode UI Development](https://awesome-repositories.com/f/user-interface-experience/ui-architecture/immediate-mode-ui-development.md) — Builds responsive interfaces by defining elements directly within the application render loop.
- [Event-Driven Input Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/event-driven-input-handlers.md) — Processes mouse, keyboard, and text input signals to update interface state during every frame. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))
- [Input Handling Systems](https://awesome-repositories.com/f/user-interface-experience/input-handling-systems.md) — Converts raw input signals into interface interactions without requiring platform-specific event handling. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))
- [Interface Layout Managers](https://awesome-repositories.com/f/user-interface-experience/interface-layout-managers.md) — Provides modular systems for organizing and managing the structural layout of interface components and windows. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))
- [Window Management](https://awesome-repositories.com/f/user-interface-experience/window-management.md) — Provides APIs for controlling the lifecycle, positioning, and visibility of persistent interface windows. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))

### Graphics & Multimedia

- [Embedded Graphics Engines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/embedded-graphics-engines.md) — Delivers a memory-efficient interface system designed for high-performance rendering in resource-constrained environments.
- [Hardware-Accelerated Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/engines/graphics-pipeline-architectures/hardware-accelerated-rendering.md) — Generates vertex buffers for graphics APIs to enable high-speed, anti-aliased interface drawing.
- [Vertex Buffer Generators](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-pipeline-configurations/vertex-buffer-generators.md) — Generates hardware-ready vertex buffers from abstract drawing commands for efficient GPU-accelerated rendering. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))

### Game Development

- [Command Buffers](https://awesome-repositories.com/f/game-development/engine-architecture/command-buffers.md) — Queues abstract drawing instructions into sequential lists for processing by a rendering backend.
- [Game Engine Tooling](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/game-engine-tooling.md) — Integrates debug panels and configuration menus directly into hardware-accelerated rendering pipelines.

### Development Tools & Productivity

- [Render Command Dispatchers](https://awesome-repositories.com/f/development-tools-productivity/custom-command-execution/hardware-command-execution/render-command-dispatchers.md) — Organizes interface components into sequential command lists for rendering backend execution. ([source](https://cdn.statically.io/gh/vurtun/nuklear/master/doc/nuklear.html))
- [Header-Only Libraries](https://awesome-repositories.com/f/development-tools-productivity/header-only-libraries.md) — Distributes the entire implementation as a single source file to simplify integration and eliminate build dependencies.

### Hardware & IoT

- [Embedded System Optimizations](https://awesome-repositories.com/f/hardware-iot/embedded-system-optimizations.md) — Optimizes graphical controls for resource-constrained embedded hardware with minimal dependencies.

### Operating Systems & Systems Programming

- [Custom Memory 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.md) — Allows manual control over memory allocation through user-provided buffers or custom allocators.
