Show HN: Pilates – pure TypeScript flex layout for terminal UIs
Pilates is a new flex layout engine designed specifically for terminal UIs, built entirely in TypeScript. It offers a separation of concerns by providing a core layout engine independent of any UI framework, allowing for flexible and efficient terminal applications. The engine supports various features such as CJK and emoji awareness, and it includes an out-of-the-box renderer for styled string output.
- ▪Pilates is a headless flex layout engine for terminal UIs, built in pure TypeScript with zero runtime dependencies.
- ▪It separates the layout engine from UI frameworks, allowing users to compute layouts independently.
- ▪The engine supports features like integer cell coordinates, CJK and emoji awareness, and ANSI escape passthrough.
Opening excerpt (first ~120 words) tap to expand
Headless flex layout engine for terminal UIs. Pure TypeScript, zero runtime dependencies. 📖 API reference Pilates is a flex layout engine designed for the terminal: integer cell coordinates, CJK / emoji / wide-char awareness, ANSI escape passthrough, and unbundled from any UI framework. Use it directly to compute layouts, or wrap the included renderer to produce styled strings. import { render } from '@pilates/render'; process.stdout.write( render({ width: 80, height: 6, flexDirection: 'row', children: [ { flex: 1, border: 'rounded', title: 'Logs', children: [{ text: 'user logged in' }] }, { width: 20, border: 'single', title: 'Status', children: [{ text: 'ok', color: 'green', bold: true }] }, ], }), ); // ╭─ Logs ───────────────────────────────────────────────────╮┌─ Status ─────────┐…
Excerpt limited to ~120 words for fair-use compliance. The full article is at GitHub.