• Stars
    star
    172
  • Rank 213,447 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Javascript Library to create webapps with a desktop look-alike interface. All the widgets are created from Javascript instead of using HTML.

litegui.js

Litegui is a javascript library to create webapps with a desktop look-alike user interface. All the widgets, panels, dialogs, etc are created from Javascript instead of HTML. The upside of this is that this helps to create more dynamic interfaces and gives a lot of flexibility. The downside is that you'll need to write some code to make it all work. If you're looking for a library that just needs some HTML and a couple of event handlers to work, litegui is not what you're looking for. On the other hand, any advanced UI will need a lot of coding and in creating advanced UI's litegui shines.

Example

Utils

Litegui includes several commands in the utils folder to generate docs, check for errors and build minifyed versions.

Feedback

You can write any feedback to [email protected]

Creating a UI

So let's start with building something simple. This first introduction will show you how to create a menubar and add some items to it. Please note that the javascript is brief on purpose and doesn't reflect javascript best coding practices. The goal here is to get you up and running as fast as possible.

Start with the following index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Algae</title>
    <link type="text/css" rel="stylesheet" href="litegui.js/build/litegui.css">

    <script type="text/javascript" src="litegui.js/external/jscolor/jscolor.js"></script>

    <script type="application/javascript" src="litegui.js/build/litegui.js"></script>
</head>
<body>
    <script src="init.js"></script>
</body>
</html>

Add the following to init.js:

// Initialize litegui.js
LiteGUI.init();

// Create a menu bar
var menu = new LiteGUI.Menubar();

// Add some items to it
menu.add('File/New');
menu.add('File/Settings');
// This will be shown greyed out
menu.add('File/I\'m not clickable', { disabled: true });

// Add a second main menu item
menu.add('Help/Help');
menu.add('Help/About');

// Add the menu bar to litegui
LiteGUI.add(menu);

Now open index.html in your browser. You should see a menu bar on the top of the screen. That might be pretty nifty, but it's not yet doing anything usefull. Let's fix that by adding a settings dialog

Add the following code to init.js after the call to LiteGUI.init():

function createSettingsDialog() {
    // Create a new dialog
    var dialog = new LiteGUI.Dialog('Settings', { title:'Settings', close: true, minimize: false, width: 300, height: 500, scroll: false, resizable: false, draggable: true });

    // Create a collection of widgets
    var widgets = new LiteGUI.Inspector();
    var nameWidget = widgets.addString("Your name","foo");
    var ageWidget = widgets.addNumber("Your age", 35, { min: 0, max: 125 });

    dialog.add(widgets);

    // Placeholder function to show the new settings. Normally you would do something usefull here
    // with the new settings.
    function applySettings() {
        console.log("Your name is " + nameWidget.getValue() + ", and you are " + ageWidget.getValue() + " years old");
    }

    // Add some buttons
    dialog.addButton('Ok', { close: true, callback: applySettings });
    dialog.addButton('Apply', { close: false, callback: applySettings });
    dialog.addButton('Cancel',{ close: 'fade' });

    return dialog;
}

var settingsDialog = createSettingsDialog();

// dialogs are shown on creation, let's hide it until the settings menu item is clicked
settingsDialog.hide();

And change the initialization of the menu bar:

menu.add('File/Settings', {callback: function() { settingsDialog.show('fade'); } });

Now when you click the setting item, you should see a dialog asking about your name and age.

More Repositories

1

webglstudio.js

A full open source 3D graphics editor in the browser, with scene editor, coding pad, graph editor, virtual file system, and many features more.
JavaScript
5,125
star
2

litegraph.js

A graph node engine and editor written in Javascript similar to PD or UDK Blueprints, comes with its own editor in HTML5 Canvas2D. The engine can run client side or server side using Node. It allows to export graphs as JSONs to be included in applications independently.
JavaScript
4,788
star
3

litegl.js

Lightweight Javascript WebGL library for handling Context, Meshes, Textures and Shaders. Relies on glMatrix 2.0, very easy to use.
JavaScript
355
star
4

litescene.js

A WebGL 3D Engine library with component-based node hierarchy. Used by WebGLStudio
JavaScript
354
star
5

Canvas2DtoWebGL

Ports (almost) all Canvas2D functions to the GPU so it can be mixed with a WebGL canvas.
JavaScript
297
star
6

litefilesystem.js

Library with client (js) and serverside (php) to have a filesystem with previews, quotas, metadata, and multiple users with privileges.
PHP
138
star
7

rendeer.js

Light-weight 3D Scene graph library with renderer in WebGL
JavaScript
82
star
8

collada.js

Collada parser in javascript. It supports skinning, morph targets and bone or node animation. It can parse inside a worker.
JavaScript
48
star
9

wide

A lightweight web IDE (mostly a coding editor) based in monaco-editor (with a one-file server made in php). It allows to navigate the server with commands.
JavaScript
46
star
10

GTR_Framework

OpenGL C++ Framework for the realtime rendering course
C
40
star
11

SillyServer.js

Simple WebSockets server in nodejs that bounces packets with some extra functionality (rooms and http request to store permanent information)
JavaScript
19
star
12

sidviz

A C64 Music chip 6581/8580 visualizer in javascript. It allows to playback SID files and shows the state of the chip during the playback.
JavaScript
12
star
13

litepixel.js

2D Game Engine in WebGL
JavaScript
11
star
14

litegraph_native

A Litegraph.js implementation in C++. It only supports the execution of nodes created using LiteGraph.JS
C
11
star
15

htmlcubemap

A simple class to embed a panoramic view in a website from six pictures
JavaScript
10
star
16

glui.js

An inmediate mode GUI that works on top of Canvas2D (it can also work in WebGL)
JavaScript
10
star
17

TJE_Framework

Basic C++ Framework for games, it wraps the basic GPU interface (Meshes, Textures, Shaders, Application).
C
10
star
18

liteos.js

Very simple browser operative system in javascript. Applications are executed in Workers.
PHP
8
star
19

webc

C++ from the web: CodeMirror + Emscripten
JavaScript
7
star
20

miniengine

Simple C++ OpenGL engine
C
7
star
21

game2d_2019

A C++ game made during a week for the Game's Dev course at UPF 2019
C++
6
star
22

gameshouse

Games host server in nodejs, it helps creating persistent online games by providing a dashboard to invite players, launch instances and check stats.
JavaScript
5
star
23

jstoolbits

A set of classes in Javascript I use in most of my projects.
JavaScript
4
star
24

evac3d

A 13Kb javascript game for the JS13K compo of 2022
HTML
3
star
25

litengine

C
2
star