[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6247":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":16,"starSnapshotCount":16,"syncStatus":39,"lastSyncTime":40,"discoverSource":41},6247,"Nuklear","Immediate-Mode-UI\u002FNuklear","Immediate-Mode-UI","A single-header ANSI C immediate mode cross-platform GUI library","https:\u002F\u002Fimmediate-mode-ui.github.io\u002FNuklear\u002F",null,"C",11205,677,130,247,0,5,29,88,26,101.79,"Other",false,"master",true,[27,28,29,30,31,32,33,34,35],"c","c89","gui","header-only","imgui","multiplatform","nuklear","single-header","single-header-lib","2026-06-12 04:00:27","# Nuklear\n\n[![](https:\u002F\u002Fgithub.com\u002FImmediate-Mode-UI\u002FNuklear\u002Fworkflows\u002FC%2FC++%20CI\u002Fbadge.svg )](https:\u002F\u002Fgithub.com\u002FImmediate-Mode-UI\u002FNuklear\u002Factions)\n\nThis is a minimal-state, immediate-mode graphical user interface toolkit\nwritten in ANSI C and licensed under public domain. It was designed as a simple\nembeddable user interface for application and does not have any dependencies,\na default render backend or OS window\u002Finput handling but instead provides a\nhighly modular, library-based approach, with simple input state for input and\ndraw commands describing primitive shapes as output. So instead of providing a\nlayered library that tries to abstract over a number of platform and\nrender backends, it focuses only on the actual UI.\n\n## Features\n\n- Immediate-mode graphical user interface toolkit\n- Single-header library\n- Written in C89 (ANSI C)\n- Small codebase (~18kLOC)\n- Focus on portability, efficiency and simplicity\n- No dependencies (not even the standard library if not wanted)\n- Fully skinnable and customizable\n- Low memory footprint with total control of memory usage if needed \u002F wanted\n- UTF-8 support\n- No global or hidden state\n- Customizable library modules (you can compile and use only what you need)\n- Optional font baker and vertex buffer output\n- [Documentation](https:\u002F\u002FImmediate-Mode-UI.github.io\u002FNuklear\u002F)\n\n## Building\n\nThis library is self-contained in one single header file and can be used either\nin header-only mode or in implementation mode. The header-only mode is used\nby default when included and allows including this header in other headers\nand does not contain the actual implementation.\n\nThe implementation mode requires defining the preprocessor macro\n`NK_IMPLEMENTATION` in *one* .c\u002F.cpp file before `#include`ing this file, e.g.:\n```c\n#define NK_IMPLEMENTATION\n#include \"nuklear.h\"\n```\nIMPORTANT: Every time you include \"nuklear.h\" you have to define the same optional flags.\nThis is very important; not doing it either leads to compiler errors, or even worse, stack corruptions.\n\n## Gallery\n\n![screenshot](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8057201\u002F11761525\u002Fae06f0ca-a0c6-11e5-819d-5610b25f6ef4.gif)\n![screen](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8057201\u002F13538240\u002Facd96876-e249-11e5-9547-5ac0b19667a0.png)\n![screen2](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8057201\u002F13538243\u002Fb04acd4c-e249-11e5-8fd2-ad7744a5b446.png)\n![node](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8057201\u002F9976995\u002Fe81ac04a-5ef7-11e5-872b-acd54fbeee03.gif)\n![skinning](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8057201\u002F15991632\u002F76494854-30b8-11e6-9555-a69840d0d50b.png)\n![gamepad](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8057201\u002F14902576\u002F339926a8-0d9c-11e6-9fee-a8b73af04473.png)\n\n## Example\n\n```c\n\u002F* init gui state *\u002F\nstruct nk_context ctx;\nnk_init_fixed(&ctx, calloc(1, MAX_MEMORY), MAX_MEMORY, &font);\n\nenum {EASY, HARD};\nstatic int op = EASY;\nstatic float value = 0.6f;\nstatic int i =  20;\n\nif (nk_begin(&ctx, \"Show\", nk_rect(50, 50, 220, 220),\n    NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_CLOSABLE)) {\n    \u002F* fixed widget pixel width *\u002F\n    nk_layout_row_static(&ctx, 30, 80, 1);\n    if (nk_button_label(&ctx, \"button\")) {\n        \u002F* event handling *\u002F\n    }\n\n    \u002F* fixed widget window ratio width *\u002F\n    nk_layout_row_dynamic(&ctx, 30, 2);\n    if (nk_option_label(&ctx, \"easy\", op == EASY)) op = EASY;\n    if (nk_option_label(&ctx, \"hard\", op == HARD)) op = HARD;\n\n    \u002F* custom widget pixel width *\u002F\n    nk_layout_row_begin(&ctx, NK_STATIC, 30, 2);\n    {\n        nk_layout_row_push(&ctx, 50);\n        nk_label(&ctx, \"Volume:\", NK_TEXT_LEFT);\n        nk_layout_row_push(&ctx, 110);\n        nk_slider_float(&ctx, 0, &value, 1.0f, 0.1f);\n    }\n    nk_layout_row_end(&ctx);\n}\nnk_end(&ctx);\n```\n![example](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8057201\u002F10187981\u002F584ecd68-675c-11e5-897c-822ef534a876.png)\n\n## Bindings\nThere are a number of nuklear bindings for different languages created by other authors.\nI cannot attest for their quality since I am not necessarily proficient in any of these\nlanguages. Furthermore there are no guarantee that all bindings will always be kept up to date:\n\n- [Java](https:\u002F\u002Fgithub.com\u002Fglegris\u002Fnuklear4j) by Guillaume Legris\n- [D](https:\u002F\u002Fgithub.com\u002FTimu5\u002Fbindbc-nuklear) by Mateusz Muszyński\n- [Golang](https:\u002F\u002Fgithub.com\u002Fgolang-ui\u002Fnuklear) by golang-ui@github.com\n- [Rust](https:\u002F\u002Fgithub.com\u002Fsnuk182\u002Fnuklear-rust) by snuk182@github.com\n- [Chicken](https:\u002F\u002Fgithub.com\u002Fwasamasa\u002Fnuklear) by wasamasa@github.com\n- [Nim](https:\u002F\u002Fgithub.com\u002Fzacharycarter\u002Fnuklear-nim) by zacharycarter@github.com\n- Lua\n  - [LÖVE-Nuklear](https:\u002F\u002Fgithub.com\u002Fkeharriso\u002Flove-nuklear) by Kevin Harrison\n  - [MoonNuklear](https:\u002F\u002Fgithub.com\u002Fstetre\u002Fmoonnuklear) by Stefano Trettel\n- Python\n  - [pyNuklear](https:\u002F\u002Fgithub.com\u002Fbillsix\u002FpyNuklear) by William Emerison Six (ctypes-based wrapper)\n  - [pynk](https:\u002F\u002Fgithub.com\u002Fnathanrw\u002Fnuklear-cffi) by nathanrw@github.com (cffi binding)\n- [CSharp\u002F.NET](https:\u002F\u002Fgithub.com\u002Fcartman300\u002FNuklearDotNet) by cartman300@github.com\n- [V](https:\u002F\u002Fgithub.com\u002Fnsauzede\u002Fvnk) by Nicolas Sauzede\n\n## Credits\nDeveloped by Micha Mettke and every direct or indirect contributor to the GitHub.\n\n\nEmbeds `stb_texedit`, `stb_truetype` and `stb_rectpack` by Sean Barrett (public domain)\nEmbeds `ProggyClean.ttf` font by Tristan Grimmer (MIT license).\n\n\nBig thank you to Omar Cornut (ocornut@github) for his [imgui](https:\u002F\u002Fgithub.com\u002Focornut\u002Fimgui) library and\ngiving me the inspiration for this library, Casey Muratori for handmade hero\nand his original immediate-mode graphical user interface idea and Sean\nBarrett for his amazing single-header [libraries](https:\u002F\u002Fgithub.com\u002Fnothings\u002Fstb) which restored my faith\nin libraries and brought me to create some of my own. Finally Apoorva Joshi for his single-header [file packer](http:\u002F\u002Fapoorvaj.io\u002Fsingle-header-packer.html).\n\n## License\nNuklear is avaliable under either the MIT License or public domain.\nSee [LICENSE](LICENSE) for more info.\n\n## Reviewers guide\n\nWhen reviewing pull request there are common things a reviewer should keep\nin mind.\n\nReviewing changes to `src\u002F*` and `nuklear.h`:\n\n* Ensure C89 compatibility.\n* The code should work for several backends to an acceptable degree.\n* Check no other parts of `nuklear.h` are related to the PR and thus nothing is missing.\n* Recommend simple optimizations.\n  * Pass small structs by value instead of by pointer.\n  * Use local buffers over heap allocation when possible.\n* Check that the coding style is consistent with code around it.\n  * Variable\u002Ffunction name casing.\n  * Indentation.\n  * Curly bracket (`{}`) placement.\n* Ensure that the contributor has bumped the appropriate version in\n  [clib.json](https:\u002F\u002Fgithub.com\u002FImmediate-Mode-UI\u002FNuklear\u002Fblob\u002Fmaster\u002Fclib.json).\n* Have at least one other person review the changes before merging.\n\nReviewing changes to `demo\u002F*`, `example\u002F*` and other files in the repo:\n\n* Focus on getting working code merged.\n  * We want to make it easy for people to get started with Nuklear, and any\n    `demo` and `example` improvements helps in this regard.\n* Use of newer C features, or even other languages is not discouraged.\n  * If another language is used, ensure that the build process is easy to figure out.\n* Messy or less efficient code can be merged so long as these outliers are pointed out\n  and easy to find.\n* Version shouldn't be bumped for these changes.\n* Changes that improves code to be more inline with `nuklear.h` are ofc always welcome.\n\n","Nuklear是一个用ANSI C编写的单头文件即时模式跨平台GUI库。其核心功能包括即时模式图形用户界面工具包、高度模块化设计以及无依赖性，支持自定义渲染后端和输入处理。该库专注于便携性、效率和简洁性，具有小巧的代码量（约18kLOC），并且完全可定制和可皮肤化。它还支持UTF-8编码，提供低内存占用，并允许对内存使用进行完全控制。Nuklear适用于需要嵌入式用户界面的应用程序开发场景，特别是那些追求高性能、轻量级解决方案且不希望引入额外依赖的项目。",2,"2026-06-11 03:06:02","top_language"]