4 个版本

0.1.3 2022年12月26日
0.1.2 2022年12月26日
0.1.1 2022年12月24日
0.1.0 2022年12月24日

#360 in 渲染

MIT/Apache

7KB

Rustycan

警告:不要使用 - 正在进行的实验性工作。 预期会有大量的破坏性更改,通常。

Rustycan 是一个强大的 Rust UI 框架,旨在使创建 UI 和更新现有游戏或应用程序的 UI 变得比以往任何时候都更容易。Rustycan 支持即时和保留模式 UI。

它具有各种高级效果,包括模糊、磨砂玻璃、着色器和动画,以及可访问性功能和轻松样式化和扩展框架的能力。此外,Rustycan 支持热重载、主题和原生控件,允许在 Android、iOS、Windows、Linux 和网络上进行跨平台开发。它依赖于现有的框架来进行渲染,以实现为开发者提供舒适和直观的体验的目标。

Rustycan: the UI framework that can

演示

待办事项

rustycan_ui! {
    Grid (
        cols={sizes=(50 2x 1x) between=40 before_first=10 after_last=20} 
        rows=1s
        children_default_spacing=(1 1 1 2) 
      
        Button.ok "Ok" (
            style=cool_style 
            override_spacing=(10 10 10 10) 
            parent.rows=(1..2) parent.cols=1
        )
        Button.cancel "Cancel" (
            style=cool_style 
            override_spacing=(1 2 3 4)
        )
        Slider.my_slider "Brush Size".brush_size (
            range=(1..100)
            value=50
            override_spacing=(_,_,1x,1x)
        )
    )
}

居中文本后跟两个右对齐按钮

rustycan_ui! {
    VertStack (
        Label "Hello world" (before=1x after=1x) // center
        HorizStack (
            before_first=1x // right align
            between=10 

            Button "Ok"
            Button "Cancel"
        )
    )
}

旧语法(可能不会使用,留作临时参考)

rustycan_ui! {
    Grid(
        cols={sizes=(50 2x 1x) between=40 before_first=10 after_last=20} 
        rows=1s
        children_default_spacing=(1 1 1 2)) 
    {
        Button Ok (
            style=cool_style 
            override_spacing=(10 10 10 10) 
            parent.rows=(1..2) parent.cols=1
        ).ok
        Button Cancel (
            style=cool_style 
            override_spacing=(1 2 3 4)
        ).cancel
        Slider "Brush Size".brush_size (
            range=(1..100)
            value=50
            override_spacing=(_,_,1x,1x)
        ).my_slider
    }
}

目标

目标 当前状态
简单易用 进行中
轻松创建 UI 和更新现有 UI 进行中
高性能 进行中
轻松样式化 进行中
轻松扩展 进行中
热重载 进行中
高级效果 - 模糊、磨砂玻璃、着色器 进行中
动画 进行中
可访问性 进行中
支持即时和保留模式 进行中
主题 进行中
支持 Android、iOS、Windows、Linux 和 Web 的跨平台 进行中
原生控件支持 进行中

Rustycan 通过重新实现 UI 语法和布局算法以优化开发者使用体验(易用性),同时依赖现有的框架(无论是低级框架还是其他 UI 框架)进行渲染来实现上述目标。这使我能够专注于易用性,而不是重新发明渲染堆栈。

许可证

MIT 或 Apache 2

无运行时依赖