Skip to content

colors ​

ANSI 이스케이프 코드로 텍스트를 감싸 터미널에 색상과 스타일을 입혀요.

typescript
import { colors } from 'es-toolkit/server';

console.log(colors.red('error'));
console.log(colors.bold(colors.cyan('hello')));

사용법 ​

colors는 ANSI 스타일 함수들을 모아 둔 객체예요. 각 함수는 문자열을 받아서 알맞은 열기/닫기 코드를 감싼 문자열을 반환해요.

typescript
import { colors } from 'es-toolkit/server';

colors.red('error');
colors.bold('emphasized');
colors.underline(colors.cyan('link'));

실제로 참조한 스타일만 번들에 포함되기 때문에 트리 셰이킹에 유리해요.

수식자 ​

reset, bold, dim, italic, underline, inverse, hidden, strikethrough

전경색 ​

black, red, green, yellow, blue, magenta, cyan, white, gray

밝은 전경색 ​

blackBright, redBright, greenBright, yellowBright, blueBright, magentaBright, cyanBright, whiteBright

배경색 ​

bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite

밝은 배경색 ​

bgBlackBright, bgRedBright, bgGreenBright, bgYellowBright, bgBlueBright, bgMagentaBright, bgCyanBright, bgWhiteBright

확장 색상 ​

확장 색상 함수들은 커링 형태예요. 색상 값을 먼저 넘기고, 그다음에 텍스트를 넘겨요.

  • ansi256(code) / bgAnsi256(code): 8비트(256색) 팔레트. code는 0–255 사이의 값이에요.
  • rgb(r, g, b) / bgRgb(r, g, b): 24비트 트루컬러.
  • hex(color) / bgHex(color): 24비트 트루컬러를 #RGB, #RRGGBB 또는 #을 뺀 같은 형식으로 받아요.
typescript
import { colors } from 'es-toolkit/server';

const orange = colors.rgb(255, 99, 71);
console.log(orange('hello'));

console.log(colors.hex('#f06')('hello'));
console.log(colors.bgAnsi256(21)('hello'));

조합 ​

스타일을 중첩해서 호출하면, 안쪽 스타일이 닫힌 뒤에도 바깥 스타일을 다시 열어 줘서 색이 유지돼요.

typescript
import { colors } from 'es-toolkit/server';

console.log(colors.red(`error: ${colors.underline('not found')}, please retry`));

대부분의 터미널은 줄바꿈마다 배경색을 초기화하기 때문에, 배경색 함수는 줄바꿈을 만나면 배경 코드를 다시 열어 줘요.

typescript
import { colors } from 'es-toolkit/server';

console.log(colors.bgYellow('line one\nline two'));

타입 ​

스타일 함수를 반환하는 헬퍼(ansi256, bgAnsi256, rgb, bgRgb, hex, bgHex)는 ColorFunction을 반환해요.

typescript
import type { ColorFunction } from 'es-toolkit/server';

type ColorFunction = (text: string) => string;

참고 ​

colors는 터미널이 색상을 지원하는지 따로 감지하지 않아요. 어떤 환경이든 항상 ANSI 이스케이프 코드를 출력해요. NO_COLOR, FORCE_COLOR, TTY 여부, CI 환경 등에 따라 출력을 분기하고 싶다면 호출하기 전에 직접 환경을 확인해 주세요.

MIT 라이선스에 따라 배포됩니다.