Skip to content

zakelfassi/neonrender

Repository files navigation

neonrender

Neon text renderer for terminals. Prints high‑contrast gradients with a faux glow, optional animation, and export to ANSI/PNG.

CI release-please license

neonrender demo

Demo showing neonrender effects and palettes in action

Requirements

  • Node.js 18+ on macOS, Linux, or Windows Terminal.

Install & Run

npm install
# Quick demo
npm run demo

# Or pass your own text
node bin/neonrender.js "Information Beings"

Usage

neonrender [text...] [options]

Options:
  -t, --text <text>          Text to render (overrides arg)
      --font <name>          block (default)
      --palette <name>       neon-violet | cyberpunk | matrix | amber
      --effect <name>        shimmer|flicker|pulse|breathe|marquee|comet|wave|ripple|scanline|strobe|sparkle|none
                              (combos allowed: shimmer+flicker, glow, pulse-glow)
      --speed <n>            Effect speed (default: 1)
      --intensity <0..1>     Effect intensity (default: 1)
      --no-anim              Render a single static frame
  -i,  --interactive         Arrow keys cycle palette/effect; q quits
      --export <type|path>   ansi|png or a file path (infers type)
      --out <file>           Output file path

Examples

  • Static cyberpunk shimmer: neonrender -t "Zaigood Labs" --palette cyberpunk --effect shimmer --no-anim
  • ANSI export: neonrender -t "Hello" --export ansi --out demo.ansi
  • PNG export: npm i canvas && neonrender -t "Hello" --export png --out hello.png
  • Interactive: neonrender -t "Hello" --interactive (←/→ palettes, ↑/↓ effects, f toggles +flicker)

Palettes

  • neon-violet (default), cyberpunk-pinkblue (alias: cyberpunk), matrix-green (alias: matrix), neon-amber (alias: amber)

How it Works (quick)

  • ASCII font via figlet → layered renderer draws a dim offset shadow + bright core → gradient across columns → effect modulates brightness over time.
  • Truecolor first with 256/16‑color fallback (auto‑detected).

Development

  • Layout: bin/ entry, src/cli.js, src/renderer/* (palettes, effects, fonts, renderer), src/util/* (ansi, term), src/exporters/*.
  • Tests: npm test (vitest). Try tests/* for examples.
  • Contributing: see AGENTS.md for style, PR, and test expectations.

Releasing (GitHub)

  • Conventional Commits drive automated releases via Release Please.
  • Merge PRs to main; the bot opens a release PR. When merged, a GitHub Release is created.
  • npm publish: add NPM_TOKEN repo secret; publish runs on release tag.

Setup notes (fixes common permission error)

  • Repo Settings → Actions → General → Workflow permissions: select “Read and write permissions” and check “Allow GitHub Actions to create and approve pull requests”.
  • Create a fine‑grained PAT with repo:contents and repo:pull_requests (or classic repo) and add it as RELEASE_PLEASE_TOKEN secret for the Release Please workflow.

Repository: https://github.com/zakelfassi/neonrender

About

Render neon-style gradients and glow in your terminal.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •