No description
Find a file
2026-01-01 12:01:53 +10:00
data scrollbar: blender style autofade option 2020-12-01 20:37:29 +10:00
examples Fix examples crashing when the window is minimised 2025-01-30 22:36:36 +10:00
koi Remove undomanager 2024-03-26 15:06:59 +10:00
.gitignore add gitignore 2020-11-26 21:45:19 +10:00
config.nims Make the tests compile again 2024-06-30 15:24:05 +10:00
koi.nim Tweak disabled widget colours 2025-08-15 11:42:23 +10:00
koi.nimble doco: Update README 2025-08-19 18:20:32 +10:00
menutest.nim lots of stuff 2019-11-30 07:19:18 +10:00
nim.cfg dos => unix 2023-07-20 15:51:20 +10:00
README.md Update README.md 2026-01-01 12:01:53 +10:00
TODO text area: scroll wheel support in edit mode 2021-10-24 21:05:52 +10:00

koi — immediate mode UI for Nim

koi-orig-flat

koi is a small (~8 KLOC, with comments) immediate mode UI library that uses OpenGL for rendering via NanoVG. It was mainly invented for the dungeon mapping tool Gridmonger (see screenshot below), and then it evolved into a minimalist but feature-rich general-purpose UI library.

GLFW is currently a hard requirement, but it should be easy to adapt it to other frameworks or backends.

There is no documentation yet—check out the examples and Gridmonger for usage.

Support is currently alpha level, meaning that the API or the functionality might change without warning at any moment.

image

Dependencies

Nim 2.2.4 or later and the following two libraries are required:

You can install them with Nimble:

nimble install glfw nanovg

Building

To build the examples (the dependencies will be auto-installed if needed):

nim test
nim paneltest

or

nim testRelease
nim paneltestRelease

See config.nims on how to link statically koi and GLFW to your program.

License

Copyright © 2019-2025 John Novak <john@johnnovak.net>

This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See the COPYING file for more details.