Overview

Freya is a work in progress cross-platform native GUI library for đŸĻ€ Rust, built on top of đŸ§Ŧ Dioxus and using 🎨 Skia as a graphics library.

#![allow(unused)]
fn main() {
fn app() -> Element {
    let mut count = use_signal(|| 0);

    rsx!(
        rect {
            height: "50%",
            width: "100%",
            main_align: "center",
            cross_align: "center",
            background: "rgb(0, 119, 182)",
            color: "white",
            shadow: "0 4 20 5 rgb(0, 0, 0, 80)",
            label {
                font_size: "75",
                font_weight: "bold",
                "{count}"
            }
        }
        rect {
            height: "50%",
            width: "100%",
            main_align: "center",
            cross_align: "center",
            direction: "horizontal",
            Button {
                onclick: move |_| count += 1,
                label { "Increase" }
            }
            Button {
                onclick: move |_| count -= 1,
                label { "Decrease" }
            }
        }
    )
}
}

Check out the examples in the Freya repository to learn more.

Features

  • ⛏ī¸ Built-in components (button, scroll views, switch and more)
  • 🚇 Built-in hooks library (animations, text editing and more)
  • 🔍 Built-in devtools panel (experimental ⚠ī¸)
  • 🧰 Built-in headless testing runner for components
  • 🎨 Theming support (not extensible yet ⚠ī¸)
  • 🛩ī¸ Cross-platform (Windows, Linux, MacOS)
  • đŸ–ŧī¸ SKSL Shaders support
  • 🔄ī¸ Dioxus Hot-reload support
  • 📒 Multi-line text editing (experimental ⚠ī¸)
  • đŸĻž Basic Accessibility Support
  • 🧩 Compatible with Dioxus SDK and other Dioxus renderer-agnostic libraries

Learn More