3 个不稳定版本

0.2.0 2024 年 8 月 13 日
0.1.1 2024 年 8 月 4 日
0.1.0 2024 年 2 月 4 日

#852GUI

Download history 72/week @ 2024-07-29 42/week @ 2024-08-05 124/week @ 2024-08-12

每月 238 下载量

MIT 许可证

660KB
1.5K SLoC

Textyle

受 SwiftUI 和声明式 UI 框架启发的布局引擎。最初专注于文本和终端图形。

示例

我计划为其创建一个 DSL,但目前的示例使用基于 rust Enum 的 API

1- 侧边栏布局

此代码

let layout = Layout::HorizontalStack( VerticalAlignment::Top, vec![
        Layout::text("Main content")
            .center_horizontally()
            .align_top()
            .padding_vertical(2)
            .border(2, '.', hash_set!(Edge::Right)),
        Layout::VerticalStack(HorizontalAlignment::Center, vec![
            Layout::text("Side content"),
            Layout::VerticalStack(HorizontalAlignment::Left, vec![
                Layout::text("List of content:")
                .padding(1),
                Layout::text("- Item 1"),
                Layout::text("- Item 2"),
                Layout::text("- Item 3"),
            ])
            .border(1, '-', hash_set![Edge::Top])
        ])
        .center_horizontally()
        .width(24)
        .padding_vertical(2)
    ]);

生成以下 UI

example_big

如果画布的尺寸较小,声明式布局会适应

example_small

依赖

~1.7–7MB
~35K SLoC