MIT License

项目介绍

bokub/gradient-string 是一个托管在 GitHub 上的开源项目,主要使用 TypeScript 编写,采用 MIT License 许可证,目前获得 1.2k 个 Star、20 次 Fork。

仓库全名
bokub/gradient-string
开源许可证
MIT License
Star 数
1.2k
Fork 数
20
未关闭 Issue
3

README 摘要

gradient-string Beautiful color gradients in terminal output Install Usage Initialize a gradient The colors are parsed with TinyColor, multiple formats are accepted. Use a gradient Built-in gradients Usage Available built-in gradients Multi line gradients In some cases, you may want to apply the same horizontal gradient on each line of a long text (or a piece of ASCII art). You can use the multiline() method of a…

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

常见问题

gradient-string 用什么语言开发?

主要使用 TypeScript 编写,采用 MIT License 许可证,目前有 1.2k 个 Star。

gradient-string 可以免费商用吗?

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

如何获取 gradient-string 的源码?

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

gradient-string 最近还在维护吗?

仓库最近一次更新为 2024年10月12日,当前有 3 个未关闭 Issue;Star 数为 1.2k,可作为社区活跃度的参考。

简要分析

热度分
1243
价值分
726
活跃状态
活跃

语言占比

TypeScript

Release

README

gradient-string

Build Status Version Codecov Downloads code style: prettier Mentioned in Awesome Node.js

Beautiful color gradients in terminal output

gradient-string

Install

$ npm i gradient-string

Usage

import gradient from 'gradient-string';

console.log(gradient(['cyan', 'pink'])('Hello world!'));

Initialize a gradient

// Provide an array of colors
const coolGradient = gradient(['#FF0000', '#00FF00', '#0000FF']);

The colors are parsed with TinyColor, multiple formats are accepted.

const coolGradient = gradient([
  tinycolor('#FFBB65'), // tinycolor object
  { r: 0, g: 255, b: 0 }, // RGB object
  { h: 240, s: 1, v: 1, a: 1 }, // HSVa object
  'rgb(120, 120, 0)', // RGB CSS string
  'gold', // named color
]);

Use a gradient

const coolString = coolGradient('This is a fancy string!');
console.log(coolString);

Built-in gradients

Usage

import { rainbow, pastel } from 'gradient-string';

// Use the pastel built-in gradient
console.log(pastel('I love gradient-string!'));

// Use the rainbow built-in gradient
console.log(rainbow('It is so pretty! 🌈'));

Available built-in gradients

Built-in gradients

Multi line gradients

In some cases, you may want to apply the same horizontal gradient on each line of a long text (or a piece of ASCII art).

You can use the multiline() method of a gradient to ensure that the colors are vertically aligned.

import gradient, { rainbow } from 'gradient-string';

// Use the same gradient on every line
const duck = gradient(['green', 'yellow']).multiline(`
  __
<(o )___
 ( ._> /
   ---
`);
console.log(duck);

// Works with aliases
rainbow.multiline('Multi line\nstring');

// Works with advanced options (read below)
gradient(['cyan', 'pink'], { interpolation: 'hsv' }).multiline('Multi line\nstring');

Advanced gradients

There are also more advanced options for gradient customization, such as custom color stops, or choice of color interpolation

Custom color stops

By default, the gradient color stops are distributed equidistantly.

You can specify the position of each color stop (between 0 and 1), using the following syntax:

let coolGradient = gradient([
  { color: '#d8e0de', pos: 0 },
  { color: '#255B53', pos: 0.8 },
  { color: '#000000', pos: 1 },
]);

Color interpolation

When creating a gradient, you can provide a second parameter to choose how the colors will be generated.

Here is the full gradient API:

gradient([colors], options?)(text)
colors

Type: Array<Color>
Colors of the gradient. Multiple formats are accepted.

text

Type: String
String you want to color.

options

Type: Object (optional)

interpolation

Type: string
The gradient can be generated using RGB or HSV interpolation. HSV usually produces brighter colors. interpolation can be set to rgb for RGB interpolation, orhsv for HSV interpolation.
Defaults to rgb. Case-insensitive

hsvSpin

Type: string
Used only in the case of HSV interpolation.
Because hue can be considered as a circle, there are two ways to go from a color to another color.
hsvSpin can be either short or long, depending on if you want to take the shortest or the longest way between two colors.
Defaults to short. Case-insensitive

Example
Code
const str = '■'.repeat(48);

// Standard RGB gradient
const standardRGBGradient = gradient(['red', 'green']);

// Short HSV gradient: red -> yellow -> green
const shortHSVGradient = gradient(['red', 'green'], { interpolation: 'hsv' });

// Long HSV gradient: red -> magenta -> blue -> cyan -> green
const longHSVGradient = gradient(['red', 'green'], { interpolation: 'hsv', hsvSpin: 'long' });

console.log(standardRGBGradient(str));
console.log(shortHSVGradient(str));
console.log(longHSVGradient(str));
Result

Example result

Dependencies

Who uses gradient-string?

License

MIT © Boris K

评论

暂无评论