https://github.com/mupen64/ugui
Flexible immediate-mode Lua GUI library
https://github.com/mupen64/ugui
gui-library lua
Last synced: about 2 months ago
JSON representation
Flexible immediate-mode Lua GUI library
- Host: GitHub
- URL: https://github.com/mupen64/ugui
- Owner: mupen64
- License: gpl-3.0
- Created: 2023-05-29T16:17:19.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2026-02-01T11:23:32.000Z (about 2 months ago)
- Last Synced: 2026-02-01T21:04:55.816Z (about 2 months ago)
- Topics: gui-library, lua
- Language: Lua
- Homepage:
- Size: 3.19 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
ugui
Flexible immediate-mode GUI library for Lua
# 🚀 Quickstart
```lua
---@module "mupen-lua-ugui"
ugui = dofile('mupen-lua-ugui.lua')
```
That's it. Don't forget to pass an absolute path, not a relative one.
Read the [demo scripts](https://github.com/Aurumaker72/mupen-lua-ugui/tree/main/demos) and function documentation for usage information.
# 📈 Advantages
- Easy Usage
- Immediate-mode control spawning API
- Flexible
- Add or extend controls
- Add or extend stylers
- Mock subsystems
- Host-authoritative
- Invokable anytime and anywhere
- No global pollution - only necessary components are exposed as tables
- Fast
- Shallow callstacks
- Reduced indirection
- Controls optimized for large datasets
# ✨ Features

mupen-lua-ugui — The base library
- Stylers
- Windows 10 (built-in)
- Flexibility
- Modify any part of the framework to your liking
- User Productivity
- Controls behave like Windows controls, ensuring consistency
- Button
- TextBox
- Full-fledged selection and editing system
- ToggleButton
- CarrouselButton
- Joystick
- Adjustable magnitude circle
- TrackBar
- Automatic layout adjustement based on size ratio
- ComboBox
- ListBox
- Scrolling support
- Unlimited items with no performance degradation
- Scrollbar
- Menu
- Unlimited child items and tree depth
- Checkable items
- Single-Pass Layout System
- StackPanel
- Horizontal/Vertical stacking
- Element gap size
- Spinner
- NumberBox
- TabControl

mupen-lua-ugui-ext — Extensions and advanced features
- Performance
- Graphics caching extension
- Stylers
- Nineslice (built-in)

BreitbandGraphics — ugui's rendering core
- Powerful abstraction layer over Mupen Lua drawing APIs
- Maximized usability
- Stable API surface
- Helpful utilities
- Hexadecimal color conversion
- Standard color tables
- Low overhead
## 🧩 Porting
### To mupen-lua-ugui
Porting a script to `mupen-lua-ugui` requires an understanding of the library's usage, achieved by reading the demos and comment docs.
For help, post an issue in this repository.