chalk-template

Terminal string styling with tagged template literals

Usage no npm install needed!

<script type="module">
  import chalkTemplate from 'https://cdn.skypack.dev/chalk-template';
</script>

README

chalk-template

Terminal string styling with tagged template literals

Install

npm install chalk-template

Usage

import chalkTemplate from 'chalk-template';
import chalk from 'chalk';

const log = console.log;

log(chalkTemplate`
CPU: {red ${cpu.totalPercent}%}
RAM: {green ${ram.used / ram.total * 100}%}
DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%}
`);

log(chalk.red.bgBlack(chalkTemplate`2 + 3 = {bold ${2 + 3}}`));

const miles = 18;
const calculateFeet = miles => miles * 5280;

console.log(chalk`
    There are {bold 5280 feet} in a mile.
    In {bold ${miles} miles}, there are {green.bold ${calculateFeet(miles)} feet}.
`);


console.log(chalk`
    There are also {#FF0000 shorthand hex styles} for
    both the {#ABCDEF foreground}, {#:123456 background},
    or {#ABCDEF:123456 both}.
`);

API

Blocks are delimited by an opening curly brace ({), a style, some content, and a closing curly brace (}).

Template styles are chained exactly like normal Chalk styles. The following two statements are equivalent:

import chalk from 'chalk';
import chalkTemplate from 'chalk-template';

console.log(chalk.bold.rgb(10, 100, 200)('Hello!'));
console.log(chalkTemplate`{bold.rgb(10,100,200) Hello!}`);

Note that function styles (rgb(), etc.) may not contain spaces between parameters.

All interpolated values (chalkTemplate`${foo}`) are converted to strings via the .toString() method. All curly braces ({ and }) in interpolated value strings are escaped.

Related

  • chalk - Terminal string styling done right
  • chalk-cli - Style text from the terminal

Maintainers