Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jd557/interim
Immediate mode GUI in pure Scala
https://github.com/jd557/interim
gui immediate-gui scala scala-js scala-native
Last synced: 10 days ago
JSON representation
Immediate mode GUI in pure Scala
- Host: GitHub
- URL: https://github.com/jd557/interim
- Owner: JD557
- License: mit
- Created: 2023-06-10T14:38:21.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-13T14:40:25.000Z (7 months ago)
- Last Synced: 2024-04-14T04:38:27.129Z (7 months ago)
- Topics: gui, immediate-gui, scala, scala-js, scala-native
- Language: Scala
- Homepage:
- Size: 342 KB
- Stars: 17
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# InterIm
![Sonatype Nexus (Releases)](https://img.shields.io/nexus/r/eu.joaocosta/interim_3?server=https%3A%2F%2Foss.sonatype.org)
[![scaladoc](https://javadoc.io/badge2/eu.joaocosta/interim_3/javadoc.svg)](https://javadoc.io/doc/eu.joaocosta/interim_3)InterIm is an [Immediate mode GUI](https://en.wikipedia.org/wiki/Immediate_mode_GUI) library in pure Scala (JVM/JS/Native).
It provides methods to build an interface and return a sequence of simple render operations (render rectangles and render text).
The library does not perform any rendering. The resulting output must be interpreted by a rendering backend.
While this might sound like a limitation, it actually allows for an easy integration with other libraries.To know more about the library and how to get started check the [examples](https://github.com/JD557/interim/tree/master/examples).
**NOTE:** This library is still in heavy development. Expect big breaking changes in future versions.
## Features
![Example of a color picker](examples/snapshot/assets/colorpicker.png)
[Online Demo](https://joaocosta.eu/Demos/InterIm/)
### Primitives and Components
- Rectangles
- Text
- Buttons
- Checkboxes
- Radio buttons
- Select boxes
- Sliders
- Text input
- Movable/Closable windows### Layouts
- Grid based
- Row based (equally sized or dynamically sized)
- Column based (equally sized or dynamically sized)### Skins
- Configurable skins for all components
- Light and dark mode## Acknowledgments
This project was heavily inspired by [Jari Komppa's Immediate Mode GUI tutorial](https://solhsa.com/imgui/) and [microui](https://github.com/rxi/microui).