ANSI Styling
Colorize terminal with ANSI colors & styles, smaller and faster alternative to Chalk.
🚀 Install and Quick Start
📖 Read full docs on GitHub
Usage
import ansis, { red, green, black, ansi256, hex } from 'ansis';
ansis.cyan('path/to/file')
green('Succeful!')
red`Error!`
black.bgYellow`Warning!`
ansi256(214)`Orange`
hex('#E0115F').bold.underline('TrueColor')
🏆 Compare & Benchmark
See the features comparison and benchmarks of most popular terminal colors libraries:
ansis
chalk
kleur
kolorist
colors.js
colorette
picocolors
ansi-colors
cli-color
colors-cli
.
💡 Highlights
- Supports ESM, CommonJS, TypeScript, Bun, Deno, Next.JS
- Standard API, drop-in replacement for Chalk
- Default and named import:
import ansis, { red, bold, hex } from 'ansis'
- Chained syntax:
red.bold.underline('text')
- Nested template strings:
red`RED ${green`GREEN`} RED`
- ANSI styles:
dim
bold
italic
underline
strikethrough
- ANSI 16 colors:
red`Error!`
redBright`Error!`
bgRed`Error!`
bgRedBright`Error!`
- ANSI 256 colors:
fg(56)`violet`
bg(208)`orange`
- TrueColor:
rgb(224, 17, 95)`Ruby`
hex('#96C')`Amethyst`
- Color fallback: TrueColor → 256 colors → 16 colors → no colors
- Raw ANSI codes:
`foo ${red.open}red{red.close} bar`
- Strip ANSI codes:
ansis.strip()
- Detect color support:
ansis.isSupported()
- Supports CLI:
NO_COLOR
FORCE_COLOR
--no-color
--color
- Correct style break at the
end of line
when used \n
- Doesn't extend
String.prototype
- Zero dependencies