Skip to content
/ freya Public
forked from marc2332/freya

Native GUI library for πŸ¦€ Rust powered by 🧬 Dioxus and 🎨 Skia.

License

Notifications You must be signed in to change notification settings

synkdev/freya

This branch is 680 commits behind marc2332/freya:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bebe6e3 Β· Feb 13, 2024
Feb 10, 2024
Oct 22, 2023
Feb 7, 2024
Feb 13, 2024
Feb 13, 2024
Feb 6, 2024
Dec 3, 2023
Feb 13, 2024
Aug 4, 2022
Feb 6, 2024
Nov 2, 2023
Sep 12, 2022
Jan 20, 2023
Jan 6, 2023
Oct 15, 2023

Repository files navigation

Freya πŸ¦€

Freya logo

Discord Server Github Sponsors codecov

Website | Nightly Docs | Stable Docs | Book | Discord

Freya is a native GUI library for Rust powered by 🧬 Dioxus and 🎨 Skia.

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



fn app(cx: Scope) -> Element {
    let mut count = use_state(cx, || 0);

    render!(
        rect {
            height: "20%",
            width: "100%",
            background: "rgb(233, 196, 106)",
            padding: "12",
            color: "rgb(20, 33, 61)",
            label { 
                font_size: "20", 
                "Number is: {count}"
            }
        }
        rect {
            height: "80%",
            width: "100%",
            background: "rgb(168, 218, 220)",
            color: "black",
            padding: "12",
            onclick: move |_| count += 1,
            label { "Click to increase!" }
        }
    )
}

Freya

Sponsors πŸ€—

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

Alberto MendezAndar1an

Want to try it? πŸ€”

Note: main branch currently depends on Dioxus 0.5.

⚠️ First, see Environment setup.

Clone this repo and run:

cargo run --example counter

You can also try freya-template

Usage πŸ“œ

Add Freya and Dioxus as dependencies:

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

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 (experimental ⚠️)
  • 🧩Compatible with dioxus-std and other Dioxus renderer-agnostic libraries

Goals 😁

  • Performant and low memory usage
  • Good developer experience
  • Cross-platform support
  • Decent Accessibility support
  • Useful testing APIs
  • Useful and extensible components and hooks

Status ⌚

You can see the tracking issue to know what features are implemented and which ones are not, yet.

MIT License

About

Native GUI library for πŸ¦€ Rust powered by 🧬 Dioxus and 🎨 Skia.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 94.8%
  • CSS 2.7%
  • Handlebars 1.8%
  • Other 0.7%