Skip to content

Releases: kristoferlund/ratcn

v0.0.3

Choose a tag to compare

@kristoferlund kristoferlund released this 07 Sep 21:21

Try ratcn in your own terminal, no Rust installation or account needed:

ssh ratcn.com

Browse interactive components, switch themes, and explore demo apps in the live showcase. Start with a button, then try a Kanban board or a multi-step wizard.

Breaking

  • Ratcn::render(frame, area, state, theme, declare) now takes area second. Pass frame.area() for the whole frame or a pane rectangle. The area bounds floating placement, layer copies, and modal dimming, but does not clip arbitrary base paint or restrict input routing.

Added

  • Ratcn::render_into(buffer, area, state, theme, declare) renders into a caller-owned buffer for offscreen content and previews. The caller allocates and clears the buffer and handles windowing; no cursor metadata is returned.
  • FocusState::none() and is_none() represent no focused component, distinct from default startup focus. This does not disable input: input can focus the tree again, and closing a modal restores a saved no-focus state.
  • The cargo-ratcn CLI: cargo ratcn init sets up an existing terminal project, keeping Cargo’s default main or installing a starter; cargo ratcn add copies components from the project’s resolved ratcn package.
  • A terminal showcase with reusable buffer-based demos and a Getting started guide.

Changed

  • The website and documentation are now at ratcn.com.

Fixed

  • Wide glyphs cut by a layer’s clipping edge no longer paint over host content outside the render area; complete glyphs at the edge remain intact.

Both ratcn and cargo-ratcn are published as 0.0.3.

Full changelog: v0.0.2...v0.0.3

v0.0.2

Choose a tag to compare

@kristoferlund kristoferlund released this 26 Aug 20:47

ratcn 0.0.2 adds Checkbox, Cycle, ProgressWidget, and ScrollArea, plus a terminal session with adaptive themes. The runtime now declares once and paints afterward, with runtime-owned hover, gestures, and viewports. Lists, selects, and text measurement are faster, every theme has been retuned, and the guides and demos follow the new APIs throughout.

This preview release contains broad breaking API changes. Pin the version exactly and consult the full changelog when upgrading.

cargo add ratcn@=0.0.2 --features crossterm

v0.0.1

Choose a tag to compare

@kristoferlund kristoferlund released this 11 Aug 11:02

First public release.

ratcn is a component library for Ratatui apps: themeable
terminal UI components that you can copy, paste, and own in your application
code.

What ships

Button · List · Select · Tabs · Dialog · Toast ·
BarChart · Tooltip

Most come in two halves: a plain Ratatui widget that only draws, usable on its
own with no runtime, and an interactive component that adds focus, keyboard,
mouse, and messages on top. BarChart and Toast are paint-only; Dialog is
interactive only.

Your app keeps its loop and its state. The library enters at exactly two call
sites — Ratcn::render and Ratcn::handle_event — and components never write
state; they return messages for your update to apply.

Install

cargo add ratcn --features crossterm

Use --features ratzilla instead to run in the browser, or no feature at all
for the paint-only widgets.

Preview status

The API will break. This is an early release and the public surface is still
moving, so pin an exact version and expect to edit when you upgrade.

There is no install CLI yet — copying a component into your project is a manual
file copy today.

Planned next: text input, multi-line text area, and a scroll area.
If you want a specific component or pattern, please open an issue.

Requirements

Rust 1.88 or later (1.90 for the browser build).

Links