#dioxus #skia #desktop #ui

freya-dom

Freya 内部 DOM 抽象

3 个版本

0.1.2 2023年9月16日
0.1.1 2023年8月27日
0.1.0 2023年8月16日

#1312GUI


用于 freya-layout

MIT 许可证

240KB
6K SLoC

Freya 🦀

Freya logo

Discord Server Github Sponsors codecov

网站 | 夜间文档 | 稳定文档 | 书籍 | Discord

Freya 是一个由 🧬 Dioxus 和 🎨 Skia 驱动的 Rust 本地 GUI 库。

⚠️ 目前处于开发中,不适合生产使用,但你可以先试玩!如果你有任何问题或问题,可以加入 Discord 服务器。



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

想试试吗? 🤔

⚠️ 首先,请查看 环境设置

克隆此仓库并运行

cargo run --example counter

您也可以尝试 freya-template

用法 📜

将 Freya 和 Dioxus 添加为依赖项

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

功能 ✨

  • ⛏️ 内置 组件(按钮、滚动视图、开关等)
  • 🚇 内置 钩子 库(动画、文本编辑等)
  • 🔍 内置 开发工具 面板(实验性 ⚠️)
  • 🧰 内置组件的 无头测试 运行器
  • 🎨 主题化 支持(目前不可扩展 ⚠️)
  • 🛩️ 跨平台(Windows、Linux、MacOS)
  • 🖼️ SKSL 着色器 支持
  • 🔄️ Dioxus 热重载 支持
  • 📒 多行 文本编辑(实验性 ⚠️)
  • 🦾 基本的支持 无障碍性(实验性 ⚠️)
  • 🧩 与 dioxus-std 和其他 Dioxus 渲染器无关库兼容

目标 😁

  • 性能和低内存使用
  • 良好的开发体验
  • 跨平台支持
  • 不错的无障碍性支持
  • 有用的测试 API
  • 有用的和可扩展的组件和钩子

状态 ⌚

您可以通过查看 问题 来了解哪些功能已实现,哪些尚未实现。

MIT 许可证

依赖项

~14–52MB
~802K SLoC