This project is part of the @thi.ng/umbrella monorepo.
Currently still bare-bones, but already usable & customizable immediate mode GUI implementation, primarily for @thi.ng/hdom-canvas and @thi.ng/webgl, however with no dependency on either.
- Push button
- Dropdown
- Radio button group
- Slider (horizontal / vertical)
- Slider groups (horizontal / vertical)
- Text input (single line, filtered input)
- Text label
- Toggle button
- XY pad
All components are:
- skinnable (via function args & global theme)
- keyboard controllable (incl. focus switching)
- support tooltips
- partial touch support
The entire UI is fully keyboard controllable:
Keys | Description |
---|---|
Tab / Shift+Tab |
Switch focus |
Enter / Space |
Activate focused button |
Up / Down or drag mouse |
Adjust value (slider or XY pad) |
Shift+Up/Down |
Adjust value (5x step) |
Alt+Up/Down or drag mouse |
Adjust slider groups uniformly (all same value) |
Alt+Left/Right |
Move cursor to prev/next word (text field) |
WIP - Alpha. Breaking changes ahead!
yarn add @thi.ng/imgui
WIP demo GUI, showcasing all available components (see above screenshot):
import * as imgui from "@thi.ng/imgui";
- Karsten Schmidt
© 2019 Karsten Schmidt // Apache Software License 2.0