MIT License

项目介绍

chalk/ansi-styles 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 MIT License 许可证,目前获得 468 个 Star、85 次 Fork。

仓库全名
chalk/ansi-styles
开源许可证
MIT License
Star 数
468
Fork 数
85

README 摘要

ansi-styles ANSI escape codes for styling strings in the terminal You probably want the higher-level chalk module for styling your strings. Install Usage API open and close Each style has an open and close property. modifierNames, foregroundColorNames, backgroundColorNames, underlineColorNames, and colorNames All supported style strings are exposed as an array of strings for convenience. colorNames is the…

完整内容见 GitHub 原始 README 或本页 。

常见问题

ansi-styles 用什么语言开发?

主要使用 JavaScript 编写,采用 MIT License 许可证,目前有 468 个 Star。

ansi-styles 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 ansi-styles 的源码?

可以直接克隆仓库:git clone https://github.com/chalk/ansi-styles.git,默认分支为 main;安装与运行步骤见仓库 README。

ansi-styles 最近还在维护吗?

仓库最近一次更新为 9月19日,当前没有未关闭的 Issue;Star 数为 468,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

ANSI escape codes for styling strings in the terminal

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
648
价值分
307
活跃状态
活跃

语言占比

JavaScript
TypeScript

Release

README

ansi-styles

ANSI escape codes for styling strings in the terminal

You probably want the higher-level chalk module for styling your strings.

Install

npm install ansi-styles

Usage

import styles from 'ansi-styles';

console.log(`${styles.green.open}Hello world!${styles.green.close}`);


// Color conversion between 256/truecolor
// NOTE: When converting from truecolor to 256 colors, the original color
//       may be degraded to fit the new color palette. This means terminals
//       that do not support 16 million colors will best-match the
//       original color.
console.log(`${styles.color.ansi(styles.rgbToAnsi(199, 20, 250))}Hello World${styles.color.close}`)
console.log(`${styles.color.ansi256(styles.rgbToAnsi256(199, 20, 250))}Hello World${styles.color.close}`)
console.log(`${styles.color.ansi16m(...styles.hexToRgb('#abcdef'))}Hello World${styles.color.close}`)

API

open and close

Each style has an open and close property.

modifierNames, foregroundColorNames, backgroundColorNames, underlineColorNames, and colorNames

All supported style strings are exposed as an array of strings for convenience. colorNames is the combination of foregroundColorNames and backgroundColorNames. Underline color names are kept separate in underlineColorNames.

This can be useful if you need to validate input:

import {modifierNames, foregroundColorNames} from 'ansi-styles';

console.log(modifierNames.includes('bold'));
//=> true

console.log(foregroundColorNames.includes('pink'));
//=> false

Styles

Modifiers

  • reset
  • bold
  • dim
  • italic (Not widely supported)
  • underline - Put a horizontal line below the text. (Not widely supported)
  • underlineDouble - Put a double horizontal line below the text. (Not widely supported)
  • underlineCurly - Put a curly horizontal line below the text. (Not widely supported)
  • underlineDotted - Put a dotted horizontal line below the text. (Not widely supported)
  • underlineDashed - Put a dashed horizontal line below the text. (Not widely supported)
  • overline Supported on VTE-based terminals, the GNOME terminal, mintty, and Git Bash.
  • inverse
  • hidden
  • strikethrough (Not widely supported)

Colors

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • blackBright (alias: gray, grey)
  • redBright
  • greenBright
  • yellowBright
  • blueBright
  • magentaBright
  • cyanBright
  • whiteBright

Background colors

  • bgBlack
  • bgRed
  • bgGreen
  • bgYellow
  • bgBlue
  • bgMagenta
  • bgCyan
  • bgWhite
  • bgBlackBright (alias: bgGray, bgGrey)
  • bgRedBright
  • bgGreenBright
  • bgYellowBright
  • bgBlueBright
  • bgMagentaBright
  • bgCyanBright
  • bgWhiteBright

Underline colors

The underline color is set independently of the text color, so the color is only visible when an underline style is also applied. (Not widely supported)

Unlike text and background colors, underline colors have no basic 16-color form. Named underline colors and underlineColor.ansi() use the first 16 entries of the 256-color palette. underlineColor.ansi256() emits a 256-color escape, and underlineColor.ansi16m() emits a truecolor escape.

  • underlineBlack
  • underlineRed
  • underlineGreen
  • underlineYellow
  • underlineBlue
  • underlineMagenta
  • underlineCyan
  • underlineWhite
  • underlineBlackBright (alias: underlineGray, underlineGrey)
  • underlineRedBright
  • underlineGreenBright
  • underlineYellowBright
  • underlineBlueBright
  • underlineMagentaBright
  • underlineCyanBright
  • underlineWhiteBright

Advanced usage

By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don’t show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.

  • styles.modifier
  • styles.color
  • styles.bgColor
  • styles.underlineColor
Style groups example
import styles from 'ansi-styles';

console.log(styles.color.green.open);

The leading SGR parameters of the styles are available under styles.codes, which returns a Map with the open codes as keys and close codes as values. Parameterized styles such as 4:2 and 58;5;0 are keyed by their leading parameter, 4 and 58 respectively.

Style codes example
import styles from 'ansi-styles';

console.log(styles.codes.get(36));
//=> 39

16 / 256 / 16 million (TrueColor) support

ansi-styles allows converting between various color formats and ANSI escapes, with support for 16, 256 and 16 million colors.

The following color spaces are supported:

  • rgb
  • hex
  • ansi256
  • ansi

To use these, call the associated conversion function with the intended output, for example:

import styles from 'ansi-styles';

styles.color.ansi(styles.rgbToAnsi(100, 200, 15)); // RGB to 16 color ansi foreground code
styles.bgColor.ansi(styles.hexToAnsi('#C0FFEE')); // HEX to 16 color ansi foreground code

styles.color.ansi256(styles.rgbToAnsi256(100, 200, 15)); // RGB to 256 color ansi foreground code
styles.bgColor.ansi256(styles.hexToAnsi256('#C0FFEE')); // HEX to 256 color ansi foreground code
styles.underlineColor.ansi(styles.rgbToAnsi(100, 200, 15)); // RGB to underline code using the first 16 palette entries

styles.color.ansi16m(100, 200, 15); // RGB to 16 million color foreground code
styles.bgColor.ansi16m(...styles.hexToRgb('#C0FFEE')); // Hex (RGB) to 16 million color foreground code

styles.underlineColor.ansi256(styles.hexToAnsi256('#C0FFEE')); // HEX to 256 color underline code
styles.underlineColor.ansi16m(...styles.hexToRgb('#C0FFEE')); // Hex (RGB) to 16 million color underline code
  • ansi-escapes - ANSI escape codes for manipulating the terminal

Maintainers

评论

暂无评论