marc2332 / freya

Cross-platform GUI library for πŸ¦€ Rust powered by 🧬 Dioxus and 🎨 Skia.
https://freyaui.dev/
MIT License
1.33k stars 51 forks source link
cross-platform dioxus gui rust skia

Freya πŸ¦€

Freya logo

Discord Server Github Sponsors codecov

Website | Nightly Docs | Stable Docs | Book | Discord

Freya is a cross-paltform GUI library for Rust powered by 🧬 Dioxus and 🎨 Skia.

⚠️ It's currently work in progress, but you can already play with it! You can join the Discord server if you have any question or issue.



```rust fn app() -> Element { let mut count = use_signal(|| 0); render!( 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" } } } ) } ``` ![Freya Demo](https://github.com/marc2332/freya/assets/38158676/f81a95a2-7add-4dbe-9820-3d3b6b42f6e5)

Sponsors πŸ€—

Thanks to my sponsors for supporting this project! πŸ˜„

Albin Ekblom

Want to try it? πŸ€”

πŸ‘‹ Make sure to check the Setup guide first.

⚠️ If you happen to be on Windows using windows-gnu and get compile errors, maybe go check this issue.

Clone this repo and run:

cargo run --example counter

You can also try freya-template

Usage πŸ“œ

Add Freya and Dioxus as dependencies:

freya = "0.2"
dioxus = { version = "0.5", features = ["macro", "hooks"], default-features = false }

Features ✨

Goals 😁

🀠 Projects

Valin βš’οΈ is a Work-In-Progress cross-platform code editor, made with Freya πŸ¦€ and Rust, by me.

Valin

MIT License