Skip to content

Releases: beorn/silvery

v0.9.0

29 Mar 15:37

Choose a tag to compare

Silvery v0.9.0

Added

  • Interactive canvas renderingrenderToCanvas() now supports full keyboard input via hidden textarea, RuntimeContext, FocusManager, ThemeProvider, and CursorProvider. Showcase demos switched from xterm.js to canvas.
  • Variable-height virtualizerVirtualList supports dynamic item heights via measurement.
  • Canvas input handler — new createCanvasInput() for DOM KeyboardEvent → terminal escape sequence conversion.

Fixed

  • Kitty keyboard: shifted punctuationShift+1 now correctly produces ! via shifted_codepoint. Default Kitty flags upgraded to include REPORT_ALL_KEYS.
  • matchHotkey layout-independent — single-character hotkeys skip shift check across all keyboard layouts.
  • Mouse mode 1003 — restored any-event tracking for hover support.
  • Commander: NO_COLORcolorizeHelp respects NO_COLOR.

Also released

  • @silvery/commander@0.8.1
  • @silvery/ansi@0.3.1

Full changelog: https://github.com/beorn/silvery/blob/main/CHANGELOG.md

v0.3.0

14 Mar 14:56

Choose a tag to compare

Full Changelog: v0.2.0...v0.3.0

v0.1.0

06 Feb 22:25

Choose a tag to compare

Initial Release

React rendering where components know their size — terminal, canvas, and DOM targets.

Highlights

  • Layout feedback during render: useContentRect() gives components their dimensions synchronously
  • Five-phase pipeline: reconcile → measure → layout → content → output
  • Three runtime layers: createRuntime (Elm), run (hooks), createApp (Zustand)
  • Drop-in Ink replacement with the same components and hooks API
  • Pluggable layout: Flexx (default, 2.5x faster) or Yoga (WASM)
  • 54μs simple renders, diffs 2.1x faster than first render

Terminal Rendering Modes

  • Fullscreen — alternate screen buffer for TUI apps
  • Inline — in-place updates in normal screen buffer
  • Static — renderString for CI, piped output, logging

Components

Box, Text, VirtualList, Console, TextInput, ReadlineInput, Static, Spacer, Newline

Testing

Playwright-style API with createRenderer, locators, and withDiagnostics for render verification.

Experimental

Canvas 2D and DOM render targets (via RenderAdapter interface).

See CHANGELOG.md for full details.