node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »

chalk-animation

chalk-animation

Build Status npm XO code style Maintainability npm

Colorful animations in terminal output

Available animations

Name Preview
rainbow rainbow
pulse rainbow
glitch rainbow
radar rainbow
neon rainbow

Install

$ npm i chalk-animation

Usage

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.

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

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.

chalkAnimation.rainbow('Lorem ipsum', 2); // Two times faster than default

Changing text

Change the animated text seamlessly with replace()

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()

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

# 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

  Example
    $ chalk-animation rainbow Hello world!

Related

License

MIT © Boris K