Note: This repository is for the C++ library. For JavaScript application development see: Runtime
OUI is a cross-platform UI engine written from the ground up in C++. It allows you to easily build programs with rich UIs that can be built for many operating systems. The functionality for your program can be written in C++ or JavaScript (coming soon).
Simple Demo App
- Written from the ground up in C++, the only dependency is SDL2
- Has custom parsers for languages based on XML & CSS
- Supports style sheets, style inheritence and state-based styles (e.g
.classname:hover { ... }
) - Prewritten optimized components (buttons, text fields, menus, scroll panels)
- Event system for components
- Has been built and run on Windows, Mac, and Linux so far (with few modifications needed for full functionality)
- C++ interface
- Implementation of flexbox spec https://www.w3.org/TR/css-flexbox-1/
- JavaScript interface
- Mobile support
- Windows
- Linux (Small font cache fix needed to prevent frequent crashing)
- MacOS/OSX (Supported, but no build scripts provided in this repo)
- Android (Coming soon)
- iOS (Coming soon)
- Web Browsers
To download dependencies run
python3 scripts/setup.py
node-gyp
is needed to build OUI
npm install -g node-gyp
then while in the OUI-engine
directory:
node-gyp configure
node-gyp build
This will generate binaries for the library in build/Release/
or build/