Skip to content

Ratatui

Demo

Here’s a weather app built with artbox and ratatui, showing how content automatically adapts to terminal size:

artbox ratatui demo

Live preview

The preview above runs a tiny wasm32-wasi binary built from artbox and rendered in the browser using @dkkoval/tui-preview.

For full controls (sliders/forms that rerun with new args), use Live Preview.

Enable the feature

artbox = { version = "0.2", features = ["ratatui"] }

ArtBox widget (text)

use artbox::{Renderer, Alignment, Fill, Color};
use artbox::integrations::ratatui::ArtBox as ArtBoxWidget;
let renderer = Renderer::default()
.with_alignment(Alignment::Center)
.with_fill(Fill::solid(Color::rgb(255, 100, 0)));
let widget = ArtBoxWidget::new(&renderer, "Hello");
frame.render_widget(widget, area);

SpriteBox widget

use artbox::{Sprite, SpriteVariant, SpriteLayer, SpriteSelection};
use artbox::integrations::ratatui::SpriteBox;
let sprite = Sprite::new(vec![SpriteVariant::new("small", vec![SpriteLayer::new(":-)")])]);
let widget = SpriteBox::new(&sprite).with_selection(SpriteSelection::Auto);
frame.render_widget(widget, area);