Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2022-09-04 12:45:01 +02:00

147 lines
3.6 KiB
Markdown

# chalk-animation
[![Build Status](https://img.shields.io/travis/bokub/chalk-animation.svg?branch=master&style=flat-square)](https://travis-ci.org/bokub/chalk-animation)
[![npm](https://img.shields.io/npm/v/chalk-animation.svg?style=flat-square)](https://www.npmjs.com/package/chalk-animation)
[![Codecov](https://img.shields.io/codecov/c/github/bokub/chalk-animation.svg?style=flat-square)](https://codecov.io/gh/bokub/chalk-animation)
[![npm](https://img.shields.io/npm/dw/chalk-animation.svg?style=flat-square&colorB=fe7d37)](https://www.npmjs.com/package/chalk-animation)
[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg?style=flat-square)](https://github.com/sindresorhus/xo)
> Colorful animations in terminal output
## Available animations
| Name | Preview |
|:---------:|:------------------------------------------:|
| rainbow | ![rainbow](http://i.imgur.com/napdxdn.gif) |
| pulse | ![pulse](http://i.imgur.com/xdaETwr.gif) |
| glitch | ![glitch](http://i.imgur.com/834FJU1.gif) |
| radar | ![radar](http://i.imgur.com/3bFrtRc.gif) |
| neon | ![neon](http://i.imgur.com/YdAAroI.gif) |
| karaoke | ![karaoke](https://i.imgur.com/lG7EF1t.gif)|
## Install
```bash
$ npm i chalk-animation
```
## Usage
```javascript
const chalkAnimation = require('chalk-animation');
chalkAnimation.rainbow('Lorem ipsum dolor sit amet');
```
#### Start and stop
You can stop and resume an animation with `stop()` and `start()`.
When created, the instance of chalkAnimation **starts automatically**.
```javascript
const rainbow = chalkAnimation.rainbow('Lorem ipsum'); // Animation starts
setTimeout(() => {
rainbow.stop(); // Animation stops
}, 1000);
setTimeout(() => {
rainbow.start(); // Animation resumes
}, 2000);
```
#### Automatic stop
Anything printed to the console will stop the previous animation automatically
```javascript
chalkAnimation.rainbow('Lorem ipsum');
setTimeout(() => {
// Stop the 'Lorem ipsum' animation, then write on a new line.
console.log('dolor sit amet');
}, 1000);
```
#### Changing speed
Change the animation speed using a second parameter. Should be greater than 0, default is 1.
```javascript
chalkAnimation.rainbow('Lorem ipsum', 2); // Two times faster than default
```
#### Changing text
Change the animated text seamlessly with `replace()`
```javascript
let str = 'Loading...';
const rainbow = chalkAnimation.rainbow(str);
// Add a new dot every second
setInterval(() => {
rainbow.replace(str += '.');
}, 1000);
```
#### Manual rendering
Manually render frames with `render()`, or get the content of the next frame with `frame()`
```javascript
const rainbow = chalkAnimation.rainbow('Lorem ipsum').stop(); // Don't start the animation
rainbow.render(); // Display the first frame
const frame = rainbow.frame(); // Get the second frame
console.log(frame);
```
## CLI mode
```bash
# Install package globally
$ npm install --global chalk-animation
```
```
$ chalk-animation --help
Colorful animations in terminal output
Usage
$ chalk-animation <name> [options] [text...]
Options
--duration Duration of the animation in ms, defaults to Infinity
--speed Animation speed as number > 0, defaults to 1
Available animations
rainbow
pulse
glitch
radar
neon
karaoke
Example
$ chalk-animation rainbow Hello world!
```
## Related
- [gradient-string](https://github.com/bokub/gradient-string) - Output gradients to terminal
- [chalk](https://github.com/chalk/chalk) - Output colored text to terminal
## License
MIT © [Boris K](https://github.com/bokub)