A Text User Interface library for Zig.
Breaking changes are possible.
Explore the docs »
View Examples
·
Report Bug
·
Request Feature
Table of Contents
Tuile is a Text User Interface library written in Zig.
Tuile uses crossterm
backend by default which works on all UNIX and Windows terminals and supports cross-compilation (powered by build.crab
).
See Backends
for the list of supported backends, or file a feature request if you want to have another one added.
Checkout the other examples here.
-
Zig 0.12.0+
-
Non-default
backends
may have additional requirements.
- Add dependency to your
build.zig.zon
zig fetch --save https://github.com/akarpovskii/tuile/archive/refs/tags/v0.1.3.tar.gz
- Import Tuile in
build.zig
:
const tuile = b.dependency("tuile", .{});
exe.root_module.addImport("tuile", tuile.module("tuile"));
const tuile = @import("tuile");
pub fn main() !void {
var tui = try tuile.Tuile.init(.{});
defer tui.deinit();
try tui.add(
tuile.block(
.{
.border = tuile.Border.all(),
.border_type = .rounded,
.layout = .{ .flex = 1 },
},
tuile.label(.{ .text = "Hello World!" }),
),
);
try tui.run();
}
You can find more examples in the examples folder
To compile an application that uses Tuile for another target, just add -Dtarget=<desired target>
when building your app and make sure to forward it to Tuile:
const target = b.standardTargetOptions(.{});
const tuile = b.dependency("tuile", .{
.target = target
});
In no particular order:
- Documentation
- Grid layout
- Windows and dialogs
- Menu bar
- More widgets
See the open issues for a full list of proposed features (and known issues).
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/amazing-feature
) - Commit your Changes (
git commit -m 'Add some Amazing Feature'
) - Push to the Branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.