https://github.com/zalanwastaken/guified
Guified is a GUI library for LรVE (Love2D) that simplifies window management and UI element creation. It allows developers to create interactive graphical user interfaces with ease.
https://github.com/zalanwastaken/guified
lib love2d love2d-gui love2d-gui-library love2d-library rapid-prototyping
Last synced: 19 days ago
JSON representation
Guified is a GUI library for LรVE (Love2D) that simplifies window management and UI element creation. It allows developers to create interactive graphical user interfaces with ease.
- Host: GitHub
- URL: https://github.com/zalanwastaken/guified
- Owner: zalanwastaken
- License: other
- Created: 2024-09-21T14:06:39.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-04-04T15:53:46.000Z (24 days ago)
- Last Synced: 2025-04-04T16:30:04.542Z (24 days ago)
- Topics: lib, love2d, love2d-gui, love2d-gui-library, love2d-library, rapid-prototyping
- Language: Lua
- Homepage:
- Size: 419 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
```
_______ __ __ ___ _______ ___ _______ ______ _______ _______ _______ _______ ___ ____
| || | | || | | || | | || | | _ || || || _ | | | | |
| ___|| | | || | | ___|| | | ___|| _ | | |_| || ___||_ _|| |_| | |___| |_ |
| | __ | |_| || | | |___ | | | |___ | | | | | || |___ | | | | ___ | |
| || || || | | ___|| | | ___|| |_| | | _ | | ___| | | | | | | | |
| |_| || || | | | | | | |___ | | | |_| || |___ | | | _ | |___| _| |
|_______||_______||___| |___| |___| |_______||______| |_______||_______| |___| |__| |__| |____|```
###### The 3000+ lines of code so you only have to write 100Guified is a ~~lightweight~~ GUI library for LรVE (Love2D) that simplifies window management and UI element creation. With its easy-to-use features, Guified enables developers to craft intuitive and interactive graphical user interfaces without unnecessary complexity. ๐ Whether you're building a small game or a large application, Guified provides the tools you need to streamline the process.
## Features โจ
- **Window Management:**
- ๐ Set the game window to always stay on top of other windows, ensuring your application remains in focus during critical interactions.
- **UI Element Support:**
- ๐ Create fully customizable buttons that detect clicks and allow for versatile user interactions.
- ๐๏ธ Design text boxes to display and update text dynamically at specified positions on the screen.
- ๐จ Create flexible and colorful frames to visually group UI elements and improve layout design.
- **And More**
- **Dynamic Drawing and Updating:**
- โป๏ธ Easily register UI elements to be dynamically drawn and updated, ensuring real-time responsiveness.
- โถ๏ธ Easily toggle the drawing and updating of elements on or off during runtime for better control.
- **Extensible Registry:**
- ๐ชง Extend the library by adding custom UI elements through the registry, making it adaptable to your specific needs.
- Make custom elements and easily register them using the registry :-
```lua
local element = {
name = "name" -- required
draw = function() -- required
end
update = function(dt) -- optional
end
keypressed = function(key) -- optional
end
textinput = function(key) -- optional
end
}
guified.registry.register(element)
```
- **Color Management:**
- ๐จ Assign dynamic colors to UI elements with support for both RGB and alpha transparency values, enabling rich visual customizations.
- ๐น Adjust and experiment with colors seamlessly to enhance the visual appeal of your project.
- **Error Handling:**
- โ Provides detailed error messages for missing elements or invalid window handles, reducing debugging time.
- Custom error handler implimented by Guified.
- **Version Information:**
- ๐ข Built-in version tracking ensures you're always aware of the library's iteration and improvements.
- **๐ Choose what you need(TESTING BUILD):**
- โ Simply remove the files whose features you dont use gufied will adapt.
- Eg. Dont use modules ? ```rm -rf modules/```. Dont use FFI features ? ```rm -rf os_interop.lua```.
- **๐ซต Guified adapts to you**
- Dont wanna use registry ? Use elements with love2d functions :-
```lua
local element -- your element
function love.update(dt)
element.update()
end
function love.draw()
element.draw()
end
```
- **๐ Debug**
- Guified comes pre-packaged with a [logger](https://github.com/Nykenik24/love2d-tools) making debugging easy.
- **๐ซ No Dependency hunting**
- Guified come pre-packaged with its dependencies so no dependency hunting. More time you can spend coding !
- **๐งฉ Modules**
- Guified comes with many modules. Making it easy to create things like frames, tweens.
- Only load what you need. Guified wont make you load all the modules only load what you need
```lua
local module = require("guified.modules.modulename")
```
- **๐คท Not satisfied ?**
- Guified is still in beta so there is still more to come along## Setup
### 1) Clone the repo.
```bash
git clone https://github.com/zalanwastaken/guified.git guified
cd guified
```
### 2) Copy guified to your project folder
```bash
cp -r guified
```
### 3) Include guified in main.lua of your project
```lua
local guified = require()
```
### 4) Setup ENV variable(Optional but highly recommended if you want to use modules)
```bash
export GUIFIEDROOTFOLDER=
```
### Done! โจ Enjoy creating with Guified! ๐## Latest Guified version
Latest Guified version is currently B-1.0.0 "Existential Crisis Edition". This brings a lot to the table the most important being stability.
This version supports the following Love2d version(These versions are tested with Guifed other versions might also run Guified fine):-
- 11.5 (Mysterious Mysteries)
- Windows โ Full support
- Linux โ Without FFI
- MacOS โ No support. Bugs on MacOS wont be fixed(Guified might still run MacOS is not blocked)
- 11.4 (Mysterious Mysteries)
- Windows โ Full support
- Linux โ Without FFI
- MacOS โ No support. Bugs on MacOS wont be fixed(Guified might still run MacOS is not blocked)## ๐ Roadmap
### โ **Current Features**
โ **UI Elements:** Buttons, frames, text boxes, etc.
โ **Dynamic Registry System:** Easily register and manage UI components.
โ **Minimal Boilerplate:** Write less code, do more.
โ **Custom Error Handling:** No more cryptic errors.
โ **Debugging Tools:** Built-in logger for easy debugging.### ๐ **Planned Features**
๐น **State Management (like React useState, but for LรVE)**
๐น **Scene Management (UI "sets" to switch views easily)**
๐น **Callback System for UI Events**
๐น **Better Input Handling (keyboard, mouse, and maybe gamepad support?)**
๐น **Performance Optimizations & Code Cleanup**
๐น **More UI Components (Dropdowns, Sliders, etc.)**
๐น **Make a studio for LOVE2D using Guified**
๐น **Modular Design: Use only the features you need.**### ๐ฎ **Future Goals**
โจ Make Guified the **go-to UI framework for LรVE**(TRY)
โจ Provide **seamless integration** with other LรVE libraries(NOT CONFIRM)
โจ Support **legacy LรVE versions for no reason at all**### ๐ฏ **Side Quests (Ongoing Tasks)**
๐ธ Ensure removing unused modules doesnโt break everything.
๐ธ Maintain FFI compatibility (or at least try to).
๐ธ Improve documentation so new users donโt suffer.
๐ธ Test Guified on different LรVE versions (including ancient ones for no reason).
๐ธ Find and fix the weirdest possible edge cases.## Notes
1. โ๏ธ Encountered bugs? Report them to help speed up development and improve the library for everyone.
2. ๐ข Check out the examples folder to quickly familiarize yourself with Guified's capabilities and jumpstart your project.
3. โ **Currently, there are no plans to support MacOS.**
4. โ **Features that use FFI are not supported on Linux due to FFI features using os dependent code**