A collection of cli loaders for your command-line applications.
Visit the website to see all loaders, copy keyframes, and more!
To install the package, use npm or yarn:
npm install cli-loaders;
# or
yarn add cli-loaders;
# or
bun install cli-loaders;
Import the loader initializer:
import { initCliLoader } from 'cli-loaders';
You can initialize any loader by its name using initCliLoader
:
import { initCliLoader, dots_1 } from 'cli-loaders';
// Initialize by name
initCliLoader('dots_1');
// initCliLoader(dots_1);
You can also customize the speed of the loader:
import { initCliLoader, dots_1 } from 'cli-loaders';
// Initialize with custom speed
initCliLoader('dots_1', 150);
// initCliLoader(dots_1, 150);
New in v2.0+, you can import the cli loader initializer, initCliLoader
for full customization:
import { initCliLoader, dots_14 } from 'cli-loaders';
Then use it with your own speed and keyframe arguments:
import { initCliLoader, dots_14 } from 'cli-loaders';
initCliLoader(dots_14); // Render loader
initCliLoader(dots_14, 100); // Render loader with custom speed
initCliLoader(dots_14, 100, ["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"]); // Render loader with speed and keyframes customized
Or you could customize it with an object:
const myAwesomeLoader = {
speed: 100,
keyframes: ["..", "."]
};
initCliLoader(myAwesomeLoader);
To stop the loader, you can use clearInterval
with the interval ID returned by initCliLoader
:
import { initCliLoader } from 'cli-loaders';
const intervalId = initCliLoader('dots_1');
// Stop the loader after some time
setTimeout(() => {
clearInterval(intervalId);
}, 5000);
Here are some of the available loaders you can use:
arrows_1
arrows_2
bars_1
bars_2
circles_1
circles_2
dots_1
dots_2
emojis_1
emojis_2
lines_1
lines_2
numbers_1
numbers_2
squares_1
squares_2
symbols_1
symbols_2
togglers_1
togglers_2
For a full list of available loaders, please refer to the source code or the website.
cli-loaders is, as it should be, very fast. It's tree shakable, and uses 0(1) time complexity to access the loader objects.
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License.
Special thanks to cli-spinners and sindresorhus for the json file for some of the loaders in this project.