3 个不稳定版本
0.2.0 | 2024 年 8 月 13 日 |
---|---|
0.1.1 | 2024 年 8 月 4 日 |
0.1.0 | 2024 年 2 月 4 日 |
#852 在 GUI
每月 238 下载量
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
如果画布的尺寸较小,声明式布局会适应
依赖
~1.7–7MB
~35K SLoC