1.1.4 • Published 2 years ago

@digitak/print v1.1.4

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

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.

ColorBright colorBackground color
blackbrightBlackbgBlack
redbrightRedbgRed
greenbrightGreenbgGreen
yellowbrightYellowbgYellow
bluebrightBluebgBlue
magentabrightMagentabgMagenta
cyanbrightCyanbgCyan
whitebrightWhitebgWhite

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

StyleEffect
resetReset all style and color
boldIncrease intensity
dimDecrease intensity
italic*
underline
blink*
fastblink*
reverseSwap foreground and background colors
hidden*Hide the given text
stroke*Strike text
default