2 unstable releases

0.2.0 Sep 18, 2021
0.1.0 Dec 16, 2020

#1106 in GUI

MIT/Apache

8MB

logo


GitHub Build Discord

Tuix is a cross-platform GUI toolkit written in Rust.

The driving principle behind tuix is to be a self-contained, small-as-possible, but still fast, toolkit for creating graphical user interfaces in Rust.

calculator

Features

  • Build Cross-Platform Applications
  • Flexible Layout
  • Fully Customisable Styling
  • Animatable Style Properties
  • A Reactive Data Model
  • Numerous Built-In Widgets
  • Custom Widgets

editor

Including tuix

Add tuix to your project by adding tuix = {git = "https://github.com/geom3trik/tuix", branch = "main"} to your projects Cargo.toml under dependencies.

Getting Started

Running Examples

You can run any of the examples with:

cargo run --example example_name

To run any example with the baseview backend:

cargo run --example example_name --no-default-features --features "baseview"

Hello GUI

Since it's probably best to learn by example, here is the "hello world" of GUI applications in tuix:

use tuix::*;

fn main() {

    let app = Application::new(WindowDescription::new().with_title("Hello GUI"), |state, window| {
        
        Button::with_label("Button")
            .build(state, window.entity(), |builder| {
                builder
                    .set_width(Pixels(100.0))
                    .set_height(Pixels(30.0))
                    .set_background_color(Color::from("#ff5e1a"))
                    .set_child_space(Stretch(1.0))
            });
    });

    app.run();
}

You can run this example with: cargo run --example hello_gui

Tuix Book (In Development)

The Book

Dependencies

~8–13MB
~243K SLoC