raygui is a simple and easy-to-use immediate-mode-gui library.

raygui is a simple and easy-to-use immediate-mode-gui library.

raygui was initially inspired by Unity IMGUI (immediate mode GUI API).

raygui was originated as an auxiliar module for raylib to create simple GUI interfaces using raylib graphic style (simple colors, plain rectangular shapes, wide borders...).

raygui is intended for tools development; it has already been used to develop multiple published tools.


features

  • Immediate-mode gui, no retained data
  • +28 basic and advance controls provided
  • Powerful styling system for colors, font and metrics
  • Standalone usage mode supported (for other graphic libs)
  • Icons support, embedding a complete 1-bit icons pack
  • Multiple tools provided for raygui development

raygui controls

basic controls

Label       |  Button      |  LabelButton |  Toggle       |  ToggleGroup |  CheckBox
ComboBox    |  DropdownBox |  TextBox     |  TextBoxMulti |  ValueBox    |  Spinner     |  Slider
SliderBar   |  ProgressBar |  StatusBar   |  ScrollBar    |  ScrollPanel |  DummyRec    |  Grid

advance controls

ListView    |  ColorPicker |  MessageBox  |  TextInputBox

container/separator controls

WindowBox   |  GroupBox    |  Line        |  Panel

raygui styles

raygui comes with a default style automatically loaded at runtime:

raygui default style

Some additional styles are also provided for convenience, just check styles directory for details:

raygui additional styles

Custom styles can also be created very easily using rGuiStyler tool.

Styles can be loaded at runtime using raygui GuiLoadStyle() function. Simple and easy-to-use.

raygui icons

raygui supports custom icons, by default, a predefined set of icons is provided inside raygui as an array of binary data; it contains 256 possible icons defined as 16x16 pixels each; each pixel is codified using 1-bit. The total size of the array is 2048 bytes.

To use any of those icons just prefix the #iconId# number to any text written within raygui controls:

if (GuiButton(rec, "#05#Open Image")) { /* ACTION */ }

It's also possible to use the provided GuiIconText() function to prefix it automatically, using a clearer identifier (defined in raygui.h).

if (GuiButton(rec, GuiIconText(RICON_FILE_OPEN, "Open Image"))) { /* ACTION */ }

Provided set of icons can be reviewed and customized using rGuiIcons tool.

raygui support tools

  • rGuiStyler - A simple and easy-to-use raygui styles editor.

    rGuiStyler v3.1

  • rGuiIcons - A simple and easy-to-use raygui icons editor.

    rGuiIcons v1.0

  • rGuiLayout - A simple and easy-to-use raygui layouts editor.

    rGuiLayout v2.2

building

raygui is intended to be used as a portable single-file header-only library, to be directly integrated into any C/C++ codebase but some users could require a shared/dynamic version of the library, for example, to create bindings:

  • Windows (MinGW, GCC)
copy src/raylib.h src/raylib.c
gcc -o src/raygui.dll src/raygui.c -shared -DRAYGUI_IMPLEMENTATION -DBUILD_LIBTYPE_SHARED -static-libgcc -lopengl32 -lgdi32 -lwinmm -Wl,--out-implib,src/librayguidll.a
  • Linux (GCC)
mv src/raygui.h src/raygui.c
gcc -o raygui.so src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -lraylib -lGL -lm -lpthread -ldl -lrt -lX11

license

raygui is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check LICENSE for further details.

Owner
Ray
I make videogames and tools to make videogames. I teach videogames dev. Always available for talks, conferences and master classes.
Ray
Comments
  • raygui unusable for C++ projects

    raygui unusable for C++ projects

    Hi,

    I'm attempting to use raygui with my raylib project, but after generating the project files for VS2019 or Make on OSX, a ton of errors are generated when trying to compile the raygui header.

    It looks like there's an issue related to both casting and just the general C vs C++ syntax.

    (copied from Visual Studio) Error C2065 'RICONS_SIZE': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 681 Error C2065 'RICONS_SIZE': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 717 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 717 Error C3861 'DrawIcon': identifier not found raylib-proj C:\raylib-proj\include\libs\raygui.h 717 Error C2065 'RICONS_SIZE': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 721 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 865 Error C2065 'RICON_CROSS_SMALL': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 883 Error C2660 'GuiButton': function does not take 1 arguments raylib-proj C:\raylib-proj\include\libs\raygui.h 883 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 909 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 979 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 980 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1156 Error C2397 conversion from 'int' to 'float' requires a narrowing conversion raylib-proj C:\raylib-proj\include\libs\raygui.h 1156 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1187 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1287 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1440 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1444 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1448 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1453 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1460 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1466 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1481 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1488 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1489 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1490

  • How to build?

    How to build?

    There appears to be no build system here unlike raylib which I've already compiled into a SHARED library on my Raspberry Pi 3B.

    How does one build this library or even just one of the provided examples?

    I've tried a very basic gcc -I/home/pi/raylib/src controls_review.c (so it can find raylib.h) and just get a ton of errors. What else do I need to -Define?

  • Push/Pop style variables

    Push/Pop style variables

    I have not seen if there is a way to push/pop style variables.

    Therefore I would like to propose for this to be added since it makes code much simpler when you want to make sure the previous state is kept once you finish what you are doing.

    For example:

    auto lastStyle = GuiGetStyle(LABEL, TEXT_ALIGNMENT);
    GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
    GuiLabel(...);
    GuiSetStyle(LABEL, TEXT_ALIGNMENT, lastStyle);
    

    would become

    GuiPushStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
    GuiLabel(...);
    GuiPopStyle(LABEL, TEXT_ALIGNMENT);
    
  • Scroll behavior

    Scroll behavior

    Hi,

    If you press the scrollbar and drag/slide the mouse outside the scrollbar bounds it didn't scroll anymore (it's a little frustrating :sweat_smile:), if I'm right is probably somewhere by there:

    https://github.com/raysan5/raygui/blob/d4b9d1fb32f1536f651ef4bfb69c9012001bfb9d/src/raygui.h#L1589

  • Used, But Not Defined

    Used, But Not Defined

    Just found this wonderful library (both raylib and this one) and while I'm doing OK within raylib, I seem to be having a problem with getting gui elements to work. They all appear to have a "used, but not defined" issue.

    Using stable releases for raylib and raygui (tried latest, but was actually having other issues, made further progress with stable, so been sticking with that).

    I had started with: #include "include/raylib.h" #define RAYGUI_IMPLEMENTATION #include "include/raygui.h" #undef RAYGUI_IMPLEMENTATION

    But that didn't work with getting anything to show up in my IDE, so tried this: #include "include/raylib.h" #define RAYGUI_STATIC #include "include/raygui.h" #undef RAYGUI_STATIC

    And that seemed to have satisfied my IDE and as long as I don't use any raygui specifics, the compiler is happy as well. However, if I use anything that is specific to raygui, the compiler starts to get angry with me.

    I'm sure that it's something that I am not doing, but I am at a lost and I haven't seen anything else in the samples, unless I just missed it (which is quite possible).

    Any thoughts? Thanks!

    Loving raylib. It's taking me awhile (having come from Godot as far as games go), but would like to be able to use this for applications as well.

  • Provide additional controls

    Provide additional controls

    Right now raygui implements following controls:

    • [x] Label
    • [x] Button
    • [x] ImageButton
    • [x] ToggleButton
    • [x] ToggleGroup
    • [x] CheckBox
    • [x] ComboBox
    • [x] GroupBox
    • [x] TextBox
    • [x] Slider
    • [x] SliderBar
    • [x] ProgressBar
    • [x] Spinner
    • [x] ColorPicker (requires some review)

    Here it is a possible list of additional controls:

    • [x] LabelButton
    • [x] ListView
    • [ ] TreeView
    • [x] ImageBox
    • [x] ScrollPanel
    • [ ] Dialog
    • [x] MessageDialog
    • [ ] DatePicker

    What do you think?

  • latest version has problems

    latest version has problems

    Hi, i downloaded repo as .zip but there is no raycons.h file in src folder and when i include and use raygui.h i get these errors: (but replacing raygui.h with latest release (2019) works)

    C:\Users\arman\Documents\vsCode\test\req/raygui.h:2398:21: error: 'glyphInfo' was not declared in this scope 2398 | if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX; | ^~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:2431:17: error: 'glyphInfo' was not declared in this scope 2431 | if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX; | ^~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h: In function 'void GuiLoadStyle(const char*)': C:\Users\arman\Documents\vsCode\test\req/raygui.h:3420:60: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3420 | if ((font.texture.id > 0) && (font.glyphCount > 0)) GuiSetFont(font); | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3490:29: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3490 | fread(&font.glyphCount, 1, sizeof(int), rgsFile); | ^~~~~~~~~~ In file included from C:\Users\arman\Documents\vsCode\test\main.cpp:5: C:\Users\arman\Documents\vsCode\test\req/raygui.h:3517:61: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3517 | font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle)); | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:213:44: note: in definition of macro 'RAYGUI_CALLOC' 213 | #define RAYGUI_CALLOC(n,sz) calloc(n,sz) | ^ In file included from C:\Users\arman\Documents\vsCode\test\main.cpp:5: C:\Users\arman\Documents\vsCode\test\req/raygui.h:3518:42: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3518 | for (int i = 0; i < font.glyphCount; i++) fread(&font.recs[i], 1, sizeof(Rectangle), rgsFile); | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3521:22: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3521 | font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3521:32: error: 'GlyphInfo' was not declared in this scope 3521 | font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); | ^~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3521:43: error: expected primary-expression before ')' token 3521 | font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); | ^ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3522:42: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3522 | for (int i = 0; i < font.glyphCount; i++) | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3524:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3524 | fread(&font.glyphs[i].value, 1, sizeof(int), rgsFile); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3525:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3525 | fread(&font.glyphs[i].offsetX, 1, sizeof(int), rgsFile); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3526:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3526 | fread(&font.glyphs[i].offsetY, 1, sizeof(int), rgsFile); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3527:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3527 | fread(&font.glyphs[i].advanceX, 1, sizeof(int), rgsFile);

  • Compilation warning

    Compilation warning

    Hi,

    ../../../../../../src/raygui.h: In function 'GetTextIcon':
    ../../../../../../src/raygui.h:646:55: warning: unused parameter 'iconId' [-Wunused-parameter]
     static const char *GetTextIcon(const char *text, int *iconId)
                                                      ~~~~~^~~~~~
    ../../../../../../src/raygui.h: In function 'GuiIconText':
    ../../../../../../src/raygui.h:4137:39: warning: unused parameter 'iconId' [-Wunused-parameter]
     RAYGUIDEF const char *GuiIconText(int iconId, const char *text)
                                       ~~~~^~~~~~
    ../../../../../../src/raygui.h:4137:59: warning: unused parameter 'text' [-Wunused-parameter]
     RAYGUIDEF const char *GuiIconText(int iconId, const char *text)
                                                   ~~~~~~~~~~~~^~~~
    ../../../../../../src/raygui.h: In function 'ConvertRGBtoHSV':
    ../../../../../../src/raygui.h:4217:5: warning: missing initializer for field 'y' of 'Vector3' {aka 'struct Vector3'} [-Wmissing-field-initializers]
         Vector3 hsv = { 0.0f };
    
    c:/RAYLIB/include/raylib.h:181:11: note: 'y' declared here float y;
    
    ../../../../../../src/raygui.h: In function 'ConvertHSVtoRGB':
    ../../../../../../src/raygui.h:4270:5: warning: missing initializer for field 'y' of 'Vector3' {aka 'struct Vector3'} [-Wmissing-field-initializers]
         Vector3 rgb = { 0.0f };
    
    c:/RAYLIB/include/raylib.h:181:11: note: 'y' declared here float y;
    
    

    If I correct these warnings, the compilation goes fine. What is your opinion on this.

  • C++ Header Design

    C++ Header Design

    Posting here for clarification, and for anyone else that is trying to overcome this hurdle.

    I have a C++ application where the GUI window is launched in main() and then manipulated via other C++ objects via raygui.

    Originally, I was getting duplicate definition errors due to the way I was including raygui in all of my code, as seen below:

    extern "C" {
    #include "raylib.h"
    
    #define RAYGUI_IMPLEMENTATION
    #include "raygui.h"
    }
    

    The "correct" implementation for this should be to use the above within main(), and then use the following everywhere else:

    extern "C" {
    #include "raylib.h"
    
    #define RAYGUI_STATIC
    #include "raygui.h"
    }
    

    Is this "correct" ?

  • Made MessageBox and WindowBox close buttons optional

    Made MessageBox and WindowBox close buttons optional

    Just proposing a small change that made my life a bit easier. Ideally, this would be done using flags, but that's a much bigger change than just this.

    This change also keeps the API intact.

    What a message box looks like without the close button: image

  • How to create a VS Project? (preferably using premake)

    How to create a VS Project? (preferably using premake)

    I am new to building projects so I don't know understand how to build this. I saw that you have a repo for raylib where you setup the project using premake and that worked. Is there one like that for raygui? If not, could you explain step by step how to set it up using VS2022?

  • GetTextBounds - Incorrect text bounds calculation for comboboxes

    GetTextBounds - Incorrect text bounds calculation for comboboxes

    In function GetTextBounds, COMBOBOX case modifies variable bounds, which is never used after that point. It should be modifying textBounds.

    From raygui.h:

    
        // Consider TEXT_PADDING properly, depends on control type and TEXT_ALIGNMENT
        switch (control)
        {
            case COMBOBOX: bounds.width -= (GuiGetStyle(control, COMBO_BUTTON_WIDTH) + GuiGetStyle(control, COMBO_BUTTON_SPACING)); break;
    
  • Dear ImGui's `io.WantCaptureMouse` and `io.io.WantCaptureKeyboard` equivalents

    Dear ImGui's `io.WantCaptureMouse` and `io.io.WantCaptureKeyboard` equivalents

    Hi,

    Are there Dear ImGui's equivalents for io.WantCaptureMouse and io.WantCaptureKeyboard flags?

    Is there any API in raygui for checking whether an input should be "consumed/handled" by UI and not propagated further? Any plans for adding it?

    Thanks 😀

Related tags
The HorusUI library allows you to quickly develop GUIs for your applications by leveraging the ease of use provided by immediate mode GUI concepts.
The HorusUI library allows you to quickly develop GUIs for your applications by leveraging the ease of use provided by immediate mode GUI concepts.

Immediate Mode Graphical User Interface for Tools OVERVIEW The HorusUI library allows you to quickly develop GUIs for your applications by leveraging

Dec 12, 2022
FlatUI is a immediate mode C++ GUI library for games and graphical applications.

FlatUI is a immediate mode C++ GUI library for games and graphical applications. Go to our landing page to browse our documentation.

Dec 23, 2022
A single-header ANSI C immediate mode cross-platform GUI library
A single-header ANSI C immediate mode cross-platform GUI library

Nuklear This is a minimal-state, immediate-mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed a

Dec 24, 2022
This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui Dear ImGui.

cimgui This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui Dear ImGui. All imgui.h functions are programm

Jul 5, 2021
ImTui: Immediate Mode Text-based User Interface C++ Library
ImTui: Immediate Mode Text-based User Interface C++ Library

ImTui is an immediate mode text-based user interface library. Supports 256 ANSI colors and mouse/keyboard input.

Jan 1, 2023
A tiny, portable, immediate-mode UI library written in ANSI C
A tiny, portable, immediate-mode UI library written in ANSI C

A tiny, portable, immediate-mode UI library written in ANSI C Features Tiny: around 1100 sloc of ANSI C Works within a fixed-sized memory region: no a

Jan 6, 2023
This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain
This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain

This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed as a simple embeddable user interface for application and does not have any dependencies, a default render backend or OS window and input handling but instead provides a very modular library approach by using simple input state for input and draw commands describing primitive shapes as output.

Jan 8, 2023
Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui
Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui

ImGuizmo Latest stable tagged version is 1.83. Current master version is 1.84 WIP. What started with the gizmo is now a collection of dear imgui widge

Dec 27, 2022
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

libui: a portable GUI library for C This README is being written. Status It has come to my attention that I have not been particularly clear about how

Jan 2, 2023
super duper simple gui for C, wrapping imgui and stb

super duper simle gui for C, wrapping imgui and stb You can use it as a static library with cmake. See the example directory for a complete example. E

May 19, 2022
Fast, flexible and simple GUI.
Fast, flexible and simple GUI.

MyGUI is a cross-platform library for creating graphical user interfaces (GUIs) for games and 3D applications. Website: http://mygui.info/ There you c

Dec 29, 2022
It's a simple Canvas GUI for Unreal Engine 4 with mouse operation
It's a simple Canvas GUI for Unreal Engine 4 with mouse operation

ue4-canvas-gui It's a simple Canvas GUI for Unreal Engine 4 with mouse operation. Included elements: Rendering Text (left/center); Rendering Rects; Re

Dec 26, 2022
rCalc is a Simple GUI Calculator
rCalc is a Simple GUI Calculator

rCalc is a simple calculator created as a hobby project to improve my C programming language knowledge and GUI creation skills. GTK3 toolkit is used to create the GUI.

Aug 1, 2022
Minimalistic C++/Python GUI library for OpenGL, GLES2/3, Metal, and WebAssembly/WebGL
Minimalistic C++/Python GUI library for OpenGL, GLES2/3, Metal, and WebAssembly/WebGL

NanoGUI NanoGUI is a minimalistic cross-platform widget library for OpenGL 3+, GLES 2/3, and Metal. It supports automatic layout generation, stateful

Dec 28, 2022
A barebones single-header GUI library for Win32 and X11.
A barebones single-header GUI library for Win32 and X11.

luigi A barebones single-header GUI library for Win32 and X11. Building example Windows Update luigi_example.c to #define UI_WINDOWS at the top of the

Dec 30, 2022
Examples, tutorials and applications for the LVGL embedded GUI library
Examples, tutorials and applications for the LVGL embedded GUI library

Examples, tutorials and applications for the LVGL embedded GUI library

Nov 11, 2022
HastyBadger is a branch of the excellent widget and GUI library Turbo Badger.

Branch Notice - HastyBadger Hasty is not Turbo. HastyBadger is a branch of the excellent widget and GUI library Turbo Badger. Notabe additions are c++

Nov 17, 2022
Elements C++ GUI library
Elements C++ GUI library

Elements C++ GUI library Introduction Elements is a lightweight, fine-grained, resolution independent, modular GUI library. Elements is designed with

Dec 30, 2022
A library for creating native cross-platform GUI apps

Yue A library for creating native cross-platform GUI apps. Getting started Documentations FAQ Development Examples Sample apps (with screenshots) Muba

Jan 7, 2023