https://github.com/sience/luis_samples
SAMPLES for LUIS. LUIS (Love UI System) is a flexible graphical user interface (GUI) framework built on top of the Löve2D game framework. LUIS provides developers with the tools to create dynamic, grid-centric, layered user interfaces for games and applications.
https://github.com/sience/luis_samples
framework gui love2d love2d-framework love2d-gui love2d-library
Last synced: about 2 months ago
JSON representation
SAMPLES for LUIS. LUIS (Love UI System) is a flexible graphical user interface (GUI) framework built on top of the Löve2D game framework. LUIS provides developers with the tools to create dynamic, grid-centric, layered user interfaces for games and applications.
- Host: GitHub
- URL: https://github.com/sience/luis_samples
- Owner: SiENcE
- License: other
- Created: 2025-02-23T16:06:05.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-03-08T21:44:14.000Z (about 2 months ago)
- Last Synced: 2025-03-08T22:25:37.155Z (about 2 months ago)
- Topics: framework, gui, love2d, love2d-framework, love2d-gui, love2d-library
- Language: Lua
- Homepage:
- Size: 2.72 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LUIS: Love UI System - SAMPLES
**LUIS** (Love User Interface System) is a flexible graphical user interface (GUI) framework built on top of the [Löve2D](https://love2d.org/) game framework. LUIS provides developers with the tools to create dynamic, grid-centric, layered user interfaces for games and applications.
## LUIS: Samples
Flexible Layout using FlexContainer with a couple of widgets.
You can see different layers, a custom widget within a Flex container, theming, and a variety of available widgets.
Virtual gamepad integration made with LUIS.
A LUIS UI-Editor made with LUIS.
1-bit full adder node graph - created with LUIS Node Widgets.## Getting Started
1. **Install Löve2D**: You can download Löve2D 11.5 from [here](https://love2d.org/).
2. **Clone the LUIS Library**:
```bash
git clone --recurse-submodules https://github.com/SiENcE/luis_samples.git
```
3. **Start the samples**:
```lua
love luis_samples/
```4. **Switch samples**:
Edit main.lua to switch look at different samples.## Features
| Feature | Description |
|---------|-------------|
| Flexible Layout | Uses a grid-based system and FlexContainers for easy UI layout |
| Layer Management | Support for multiple UI layers with show/hide functionality & Z-indexing for element layering |
| Theme Support | Global theme customization, Per-widget theme overrides |
| Customizable Theming | Easily change the look and feel of your UI elements |
| Widget API | Core system for loading and managing widgets (widgets themselves are optional and loaded dynamically) |
| Event Handling | Built-in support for mouse, touch, keyboard, and gamepad interactions & focus management |
| Responsive Design | Automatically scales UI elements and interaction based on screen dimensions |
| State Management | Tracks and persists element states to save and load configurations |
| Extensibility | Modular design allowing easy addition of new widgets or removing unneeded widgets (see Widget Types section) |
| Debug Mode | Toggle grid and element outlines for easy development |**Note**: These features are all part of the [LUIS core library](https://github.com/SiENcE/luis/tree/restructuring) (`core.lua`), which has **zero dependencies**! You can use the core library on its own and implement your own widgets for a lightweight UI system for [Löve2D](https://love2d.org/) without any additional dependencies.
## Documentation
For more detailed information on the LUIS API, including layer management, input handling, theming, and state management, please refer to the [LUIS core documentation](https://github.com/SiENcE/luis/blob/restructuring/luis-api-documentation.md).
## Dependencies
- Löve2D: The game framework used for rendering and managing game objects.
- The **core** library has **zero dependencies**, so you write your own widgets to have a lightweight ui system (see [basic_ui_sample](/samples/basic_ui/) ).## known Problems
- DropBox: Selection with the gamepad-analogstick works not for all choices
- FlexContainer - dropdown select is not possible via gamepad-analogstick
- TextInput - when changing Theme, we have to adjust the fontsize in TextInput widgets
- TextInputMultiLine doesn't support setConfig/getConfig## License
This project is licensed under the MIT License with additional terms - see the [LICENSE](LICENSE) file for details.
**Important:** Use of this software for training AI or machine learning models is strictly prohibited. See the LICENSE file for details.## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.