A modern, comprehensive ASCII art and animation ecosystem for React, Ink, and the Terminal.
Inkscii is a collection of packages designed to make ASCII art animations as easy to use as icon packs. Whether you're building a sleek terminal UI with Ink or a retro-styled web application, Inkscii provides the tools to generate, render, and animate ASCII content with ease.
| Package | Description |
|---|---|
@inkscii/ascii |
Core rendering component for React (Web) and Ink (CLI). |
@inkscii/react-ascii-text |
React hook for animating Figlet fonts with high-quality transitions. |
@inkscii/cli |
CLI tool to convert video files into .rune.json ASCII animations. |
@inkscii/animations |
A library of pre-generated ASCII animations ready for use. |
bun install @inkscii/ascii @inkscii/animationsimport { Rune } from "@inkscii/ascii";
import fire from "@inkscii/animations/fire.rune.json";
function App() {
return <Rune data={fire} colored={true} />;
}import React from "react";
import { render, Box } from "ink";
import { Rune } from "@inkscii/ascii";
import ghost from "@inkscii/animations/ghost.s.rune.json";
const App = () => (
<Box padding={2} borderStyle="round">
<Rune animation={ghost} />
</Box>
);
render(<App />);This project uses Bun workspaces.
- Install dependencies:
bun install - Build all packages:
bun run build - Lint all packages:
bun run lint - Typecheck all packages:
bun run typecheck
Check out the examples/ directory for ready-to-run projects:
- CLI Demo: An interactive terminal animation selector built with Ink.
- Web Font Viewer: A Vite-powered web app to preview all available Figlet fonts.
To run an example:
cd examples/cli-demo
bun run startThe standard format for Inkscii animations. It contains frame-by-frame character and color data, optimized for incremental updates and low memory footprint.
@inkscii/ascii detects its environment and automatically switches between:
- DOM: High-performance incremental updates for the web.
- Canvas: Optimized rendering for large or complex animations.
- ANSI: Colorized string output for terminal-based applications.
MIT © involvex