oze4 / chalky

Like chalk.js, but smaller and with fewer features. Meant for rapid prototyping without worrying about node_modules bloat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm version

npm i chalky / yarn add chalky

chalky

Table of Contents


About

Like chalk with fewer features, smaller in size (905 bytes), and self-contained (zero dependencies). Think of chalky like a 'stripped down', basic version of chalk..

chalky aims to provide a chalk-like experience, but for the most basic of console color features. Simple and small. 'Cheaply' add color to your console without worrying about the size of node_modules.

We're not quite hardened chalk, but we're still chalky 😏


Demos

Chaining

  • Like chalk, chain methods together to change the foreground color, background color, add formatting (italic, bold, underline, etc..), for unique color/formatting combinations.
const chalky = require('chalky');

console.log(
  chalky.italic.bgBlack.red.bold("Lorem ipsum dolor sit amet")
);
  • Output:

demo

Color priority in chain

  • The last color in the chain is what gets used:
const chalky = require('chalky');

// This line..
const a = chalky.red.green.blue.bgRed.bgBlack.bgYellow("Lorem ipsum dolor sit amet");
// ...is equivalent to this line
const b = chalky.blue.bgYellow("Lorem ipsum dolor sit amet");

console.log(`This:         ${a}`);
console.log(`Should equal: ${b}`);
  • Output:

demo


const chalky = require('chalky');

// This line..
const a = chalky.red.blue("Lorem ipsum dolor sit amet");
// ...is equivalent to this line
const b = chalky.blue("Lorem ipsum dolor sit amet");

console.log(`This:         ${a}`);
console.log(`Should equal: ${b}`);
  • Output:

demo

Rainbow

  • Use chalky.rainbow('Some string') to 'rainbowify' a string
const chalky = require('chalky');

console.log(
  chalky.rainbow("Lorem ipsum dolor sit amet")
);
  • Output:

demo


Properties

  • Foreground Colors:

    • black
    • red
    • green
    • yellow
    • blue
    • magenta
    • cyan
    • white
  • Background Colors:

    • bgBlack
    • bgRed
    • bgGreen
    • bgYellow
    • bgBlue
    • bgMagenta
    • bgCyan
    • bgWhite
  • Formatting:

    • bold
    • light
    • italic
    • underline
    • blink
    • inverse
    • hidden

Why?

Two reasons...

I wanted to understand:

  • How chalk was able to use properties with the same name as both a getter and method on the same object
    • For example, you can do chalk.blue('foo'); and chalk.blue.bold('foo'); (.blue is being used as both a method and getter)
  • How chalk was able to chain these properties/methods/getters

While modified, some of the code in this repo may resemble chalk as I followed the same logic.

About

Like chalk.js, but smaller and with fewer features. Meant for rapid prototyping without worrying about node_modules bloat

License:MIT License


Languages

Language:JavaScript 100.0%