Няма описание

Raimundo Saona 99c9085bed Cleaning up Cargo.toml преди 3 години
.vscode dc34805ee6 feat: wire up stretch into place преди 3 години
examples 395558232e updates: move to stable versions преди 3 години
src 395558232e updates: move to stable versions преди 3 години
tests dc34805ee6 feat: wire up stretch into place преди 3 години
.gitignore e3171e8303 wip: first pass преди 4 години
Cargo.toml 99c9085bed Cleaning up Cargo.toml преди 3 години
README.md 6c8fd6dccb Cleaning up the README преди 3 години
test.html 7b29fbbad0 wip: add an image преди 3 години

README.md

Rink: Like "Ink" but for Rust and Dioxus

The fastest portable TUIs in the west 🔫🤠🔫 🐎🔥🔥🔥

Rink lets you build terminal user interfaces in Rust with Dioxus.

You can use Html-like semantics with stylesheets, inline styles, tree hierarchy, components, and more in your text-based user interface (TUI) application.

Rink is basically a port of Ink but for Rust and Dioxus. Rink doesn't depend on Node.js or any other JavaScript runtime, so your binaries are portable and beautiful.

Limitations

  • Subset of Html Terminals can only render a subset of HTML. We support as much as we can.
  • Particular frontend design Terminals and browsers are and look different. Therefore, the same design might not be the best to cover both renderers.

Example

Let's print Hello world! in the center of the screen.

static App: FC<()> = |cx| {
    cx.render(rsx!{
        div { 
            width: "100%", 
            height: "10px",
            background_color: "red",
            justify_content: "center",
            align_items: "center",

            "Hello world!"
        }
    })
}

demo app

Status

WARNING: Rink is currently under construction!

Rendering a VirtualDom works fine, but the ecosystem of hooks is not yet ready. Additionally, some bugs in the flexbox implementation might be quirky at times.

Features

Rink features:

  • Flexbox based layout system
  • CSS selectors
  • inline CSS support
  • Built-in focusing system
  • high-quality keyboard support
  • Support for events, hooks, and callbacks
  • Html tags1

1 Currently, HTML tags don't translate into any meaning inside of rink. So an input won't really mean anything nor does it have any additional functionality.