# nano-colors
**Repository Path**: mirrors/nano-colors
## Basic Information
- **Project Name**: nano-colors
- **Description**: Nano Colors 是一个小而快速的 Node.js 库,用于将 ANSI 颜色输出到终端
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://www.oschina.net/p/nano-colors
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-09-28
- **Last Updated**: 2025-09-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Deprecated
**DEPRECATED:** Use
**[`picocolors`](https://github.com/alexeyraspopov/picocolors)** instead.
It is 3 times smaller and 50% faster.
The space in node_modules including sub-dependencies:
```diff
- nanocolors 16 kB
+ picocolors 7 kB
```
Library loading time:
```diff
- nanocolors 0.885 ms
+ picocolors 0.470 ms
```
Benchmark for complex use cases:
```diff
- nanocolors 1,088,193 ops/sec
+ picocolors 1,772,265 ops/sec
```
## Old docs
A tiny and fast Node.js library to ANSI colors to terminal output.
```js
import { green, bold } from 'nanocolors'
console.log(
green(`Task ${bold('1')} was finished`)
)
```
>Started as a fork
> of [**@jorgebucaran**](https://github.com/jorgebucaran/)’s
> [`colorette`](https://github.com/jorgebucaran/colorette) with hacks
> from [**@lukeed**](https://github.com/lukeed/)’s
> [`kleur`](https://github.com/lukeed/kleur).
> See [changes](https://github.com/ai/nanocolors/wiki/Colorette-Changes)
> between Nano Colors and `colorette`.
[ESM]: https://github.com/ai/nanocolors/blob/main/index.js
[CJS]: https://github.com/ai/nanocolors/blob/main/index.cjs
## Replacing `chalk`
1. Replace import and use named exports:
```diff
- import chalk from 'chalk'
+ import { red, bold } from 'nanocolors'
```
2. Unprefix calls:
```diff
- chalk.red(text)
+ red(text)
```
3. Replace chains to nested calls:
```diff
- chalk.red.bold(text)
+ red(bold(text))
```
4. If you used template tag, then use
the [`nanocolors-template`](https://github.com/usmanyunusov/nanocolors-template):
```diff
- import chalk from 'chalk'
+ import { colorize } from 'nanocolors-template'
- chalk.yellow.bold`yellow {red ${"text"}}`
+ colorize`{yellow.bold yellow {red ${"text"}}}`
```
Above changes can be applied automatically using
[codemod](https://gist.github.com/gavrix/ff051941ad9a19c8ea3224f38c30bc9a):
```sh
npx jscodeshift FILES -t https://gist.githubusercontent.com/gavrix/ff051941ad9a19c8ea3224f38c30bc9a/raw/09d81e93f880ecbc8f52dcf7819816c81e2ba340/chalk_nanocolors_transform.js
```
## API
### Individual Colors
Nano Colors exports functions:
| Colors | Background Colors | Modifiers |
| --------- | ------------------- | ----------------- |
| `black` | `bgBlack` | dim |
| `red` | `bgRed` | **bold** |
| `green` | `bgGreen` | hidden |
| `yellow` | `bgYellow` | _italic_ |
| `blue` | `bgBlue` | underline |
| `magenta` | `bgMagenta` | ~~strikethrough~~ |
| `cyan` | `bgCyan` | reset |
| `white` | `bgWhite` | |
| `gray` | | |
Functions are not chainable. You need to wrap it inside each other:
```js
import { black, bgYellow } from 'nanocolors'
console.log(bgYellow(black(' WARN ')))
```
Functions will use colors only if Nano Colors auto-detect that current
environment supports colors.
You can get support level in `isColorSupported`:
```js
import { isColorSupported } from 'nanocolors'
if (isColorSupported) {
console.log('With colors')
}
```
### Conditional Support
You can manually switch colors on/off and override color support auto-detection:
```js
import { createColors } from 'nanocolors'
const { red } = createColors(options.enableColors)
```
On `undefined` argument, `createColors` will use value
from color support auto-detection.