Crucible

Typeset

Canvas ASCII renderer with amber-phosphor persistence: a headline (or a flowing noise field) redrawn as a weight-ramped glyph grid that pours in, shimmers, and brightens under the cursor.

canvaspro

Installation

CLI

npx shadcn@latest add @crucible/typeset

Props

PropTypeDefaultDescription
textstring"TYPESET"Headline rendered as the ASCII field (also emitted as sr-only text).
mode"text" | "fluid""text""text" rasterizes the headline into the glyph grid; "fluid" renders a flowing turbulent-noise field as an ASCII brightness ramp.
charsetstring" .:-=+*#%@"Character ramp ordered light → heavy; local density picks the glyph. The first character should be a space (empty cells).
cellSizenumber12Grid cell size in px. Bigger = chunkier terminal art.
colorstringamber phosphorSingle signature hue. Bright cells bloom toward white.
speednumber1Animation-rate multiplier (shimmer, fluid churn, pour-in).
pausedbooleanfalseFreeze the field at a fully formed static frame.
seednumber3Deterministic seed for shimmer phases and the noise field.
Also accepts all props of Omit<React.ComponentPropsWithoutRef<"div">, "children" | "color">they pass through to the underlying element.

Honors prefers-reduced-motion with a designed static fallback, pauses offscreen and on hidden tabs, and passes className through.