@digitak/print

Enjoyable and colored printing in the console with node

Usage no npm install needed!

<script type="module">
  import digitakPrint from 'https://cdn.skypack.dev/@digitak/print';
</script>

README

Enjoyable library for colorful printing in the console

cute-print is an alternative to well-known libraries like chalk which focus on less typing, more readability and confort of use.

Note that colors will not display on windows console. If you work on windows, you should really consider using an external terminal tool like cmder or hyper.

Also see cute-dump if you need to pretty-dump an object.

Usage

Import print :

import { print } from 'cute-print'

Print a colored value :

print `Hello [red: world]!`
print `Hello [red.bgWhite: world]!`

const who = 'world'
print `Hello [green.bold:${who}]!`

// the default style is 'bold'. Both are identical :
print `Hello [:${who}]!`
print `Hello [bold:${who}]!`

You can nest colors - although it becomes easily complex : (you should consider using the next syntax)

print `Hello [red: world and [bold:universe]]!`

You can use a tag without the : - that will affect the string up to the end.

print `Hello [red] world and [bold] universe!`

You can use [reset] to reset the style :

print `Hello [red.bold] world and [reset] universe!`

You can also use a default styling for the whole string :

print.red `Hello red world!`
print.red.bgWhite `Hello red world on white background!`

Printing on the error or warning streams :

print.warn `You are a cute dangerous guy`
print.error `Something wrong happened`
print.error.red `Something wrong happened`

Comparison with chalk

Remember that every library has its pros and cons - and everyone has its own preferences.

  • chalk has support for true colors
  • chalk can be used to manipulate any strings where cute-print purpose is only to print in the console
  • cute-print has no dependencies
  • cute-print is written in Typescript and so can be used in any Typescript project with zero effort
  • cute-print has a cleaner syntax :

The exemples are actually from my own code. I had a lot of logs to do and the syntax started to be painful so I decided to create this utilitary library.

// chalk : 74 characters (~ +50%)
console.log(chalk.green('\n-' + chalk.bold(' The mole starts to sniff!')))
// cute-print : 50 characters
print.green `\n- [bold] The mole starts to sniff!`
// chalk : 58 characters (~ +25%)
console.log(chalk.blueBright('Entities :'), total - empty)
// cute-print : 46 characters
print.brightBlue `Entities : ${total - empty}`

Tag reference

You can mix any tag anytime by using a dot . as separator.

Color Bright color Background color
black brightBlack bgBlack
red brightRed bgRed
green brightGreen bgGreen
yellow brightYellow bgYellow
blue brightBlue bgBlue
magenta brightMagenta bgMagenta
cyan brightCyan bgCyan
white brightWhite bgWhite

All tags marked with an asterisk * are not supported in many consoles.

Style Effect
reset Reset all style and color
bold Increase intensity
dim Decrease intensity
italic*
underline
blink*
fastblink*
reverse Swap foreground and background colors
hidden* Hide the given text
stroke* Strike text
default