Retro Terminal Emulator
ProCRT phosphor glow, scanlines, and a 240 char/sec typer that never re-renders a single line of output mid-stream.
show offretroterminalemulatorframer motion
Installation
Run the following command
~/your-project
pnpm dlx wensity@latest add retro-terminal-emulator
Usage
Import RetroTerminalEmulator from @/components/wensity/retro-terminal-emulator and render it anywhere in your React or Next.js app. The source lands in your own repo, so every prop, class and animation below is yours to edit.
app/example.tsx
import {RetroTerminalEmulator,type TerminalLine,} from "@/components/wensity/retro-terminal-emulator";const lines: TerminalLine[] = [{ kind: "comment", text: "# wensity studio · v2.4.0" },{ kind: "command", text: "pnpm dlx wensity@latest add retro-terminal-emulator" },{ kind: "output", text: "✓ Resolved deps · 0 added · 0 removed" },{ kind: "command", text: "pnpm dev" },{ kind: "output", text: "▲ Next.js · Local: http://localhost:3000" },{ kind: "output", text: "✓ Ready in 287ms" },];export default function Example() {return (<RetroTerminalEmulatorlines={lines}palette="phosphor"cps={42}title="wensity@studio: ~"/>);}
Props
| Prop | Type | Default | Description |
|---|---|---|---|
lines | TerminalLine[] | - | Lines to type out, in order. |
cps | number | 38 | Default characters-per-second cadence. |
prompt | string | "$ " | Default prompt prefix for command lines. |
title | string | "wensity@studio: ~" | Header title bar text. |
loop | boolean | true | Loop the whole sequence forever. |
linePause | number | 320 | Pause in milliseconds between lines. |
loopPause | number | 2200 | Pause in milliseconds before restarting the loop. |
palette | "phosphor" | "amber" | "chili" | "phosphor" | Preferred CRT colour theme. |
