Each component and background installs as plain source into components/asciicn/. Drop one into your page as it is, read its source to see how it's made, or point your agent at one and ask for a variation. For anything not here, ask your agent or write your own. To try looks before you install, open the Studio.
City skylines
10Animated ASCII skylines of ten cities, each one component you put behind a hero.
Landscapes
6Painted halftone landscapes in glyph dots, each one component you put behind a hero.
3D & scenes
11Real-time 3D objects and animated scenes drawn in glyphs.
Shaders & fields
6Seeded glyph fields that run on the GPU, for heroes, sections and cards.
Media & filters
7Turn images, video and logos into ASCII.
Text & typography
7Display type set in glyphs: banners, scrambles, glitches, typewriters and tickers.
Terminal & UI
15Terminal-grade interface pieces: frames, buttons, loaders and status, in real text.
Using a component
Install any component by name. It brings the parts of the engine it needs the first time:
pnpm dlx shadcn@latest add https://asciicn.dev/r/nebula.jsonBackgrounds fill the box you give them. Put one behind your content with absolute inset-0:
import { Nebula } from "@/components/asciicn/nebula";
export function Hero() {
return (
<section className="relative isolate min-h-[480px]">
<Nebula charset="braille" className="absolute inset-0 -z-10" />
<h1>Your headline</h1>
</section>
);
}Components that draw on the engine share these look props:
| Prop | What it controls | Default |
|---|---|---|
charset | The glyph set: "standard", "dense", "blocks", "quadrants", "braille", "cp437", "petscii", "katakana", "dots", "edge" | Chosen per component |
chars | A custom ramp from empty to dense, such as " .oO@". Wins over charset | none |
colorMode | "mono", "truecolor", "ansi16", "duotone" or "palette" | Chosen per component |
phosphor | Mono screen colour: "p1", "p3", "ibm" or "blueprint" | --ascii-ink |
ramp | Duotone ramp, such as "mainframe", "sodium" or "glacier" | Chosen per component |
fx | CRT post effects: scanlines, bloom, curvature, glitch, flicker, vignette, each 0 to 1 | none |
cell | Glyph cell height in CSS pixels | --ascii-cell |
animate | Whether it moves | true |
speed | How fast it moves | 1 |
handle | A ref that can capture the current frame for export | none |
Terminal and UI pieces take a color from the named palette and their own content props. Each page lists every prop.
On This Page
Using a component












































































































