npm.io
3.2.0 • Published 1 year ago

styl3

Licence
MIT
Version
3.2.0
Deps
0
Size
36 kB
Vulns
0
Weekly
0

styl3 3.2.0

themeable cli coloring

What's New

20 built-in themes!
Formatting decorators!
Supports custom colors and custom themes!
Supports hex, rgb, or ansi color codes
Color conversion utils such as rgb/hex/ansi
Easy and flexible api New write and timestamp options!

usage

styl3 can provide color names as functions for coloring output and decorators for adding specific formatting for a given string.
for example:

import style from "styl3";

const styled = style();

const output = [
  "@*Never* gonna give you !up!@",
  "@Never gonna %let you down%@",
  "@$Never$ gonna run around and *desert* you@"
];

const style = require("styl3");
const s = style();

console.log(s.red`this will be a default red`);
// access a theme specifically
console.log(s.pastel.green`this will be a pastel green`);

const ss = style({ theme: "pastel" });
// now `ss.green` points to the pastel green

console.log(ss.green`also a pastel green`);

// supports custom hex
console.log(ss.hex("#de5285")`this will be a slick pink`);
// and rgb
console.log(ss.rgb(15, 106, 251)`this will be a rich blue`);

decorators

decorators are characters used to wrap a word and give it decorating features, such as bold, italic, underline, strikeout, inverted and italic.

more than one decorator can be applied to a word

map

{
  bold: '*',
  underline: '!',
  dim: '~',
  hidden: '#',
  invert: '@',
  blink: '^',
  italic: '%',
  strikeout: '

usage

const style = require("styl3");
const s = style({ theme: "pastel" });

// use decorators for bold, underline etc...
console.log(s.red`lush red *BOLD* @INVERTED@`);
// double decoratros
console.log(s.cyan`this is !*bolderlined!*! get it? bold and underlined...😏`);
console.log(s.green`viva la %italic%`);
console.log(s.pink`address: ~you@somewhere.earth~`);

you can also provide your own custom decorators map:

const style = require("styl3");
const s = style({ theme: "pastel", decorators: { bold: "_" } });

// use custom decorators
console.log(s.red`this will now be _BOLD_`);

you can also provide your own color theme:

import style from `styl3`;

const custom = style({
  theme: "custom",
  colors: {
    custom: {
      red: "#750404",
      green: "#1b7504",
      yellow: "#929605",
      blue: "#041382",
      purple: "#620182",
      cyan: "#027678",
      pink: "#a3039b",
      orange: "#b37202"
    }
  }
});

// use custom colors
console.log(s.green`this will be with #1b7504 color`);

themes

15 unique built-in themes to get you started on easy cli styling

Theme Screenshot
autumn
beach
champagne
crayons
lush
mint
nature
neon
pastel
pinkish
pool
rainbow
rufus
sport
spring
summer
sunset
vintage
standard
default

options

styl3 3.2.0 introduces 2 new options for quality of life.

write

using this option set to true - styl3 will perform the console.log for you.

timestamp

using this option styl3 will add a timestamp to each print using the time it is printed.
primarily aimed at logging use-cases.

example
import style from `styl3`

const styled = style({
  write: true,
  timestamp: {
    format: {  dateStyle: 'short', timeStyle: 'short' },
    color: 'blue'
  }
});

const a = styled.blue`this will be logged out - no need to wrap in console.log`
// a still has the string formatted just in case you need it :)

styled.red`log is red but timestamp is blue`
// [9/2/25, 4:49 PM] log is red but timestamp is blue
}

usage

__CODE_BLOCK_3__

you can also provide your own custom decorators map:

__CODE_BLOCK_4__

you can also provide your own color theme:

__CODE_BLOCK_5__

themes

15 unique built-in themes to get you started on easy cli styling

Theme Screenshot
autumn
beach
champagne
crayons
lush
mint
nature
neon
pastel
pinkish
pool
rainbow
rufus
sport
spring
summer
sunset
vintage
standard
default

options

__INLINE_CODE_1__ 3.2.0 introduces 2 new options for quality of life.

__INLINE_CODE_2__

using this option set to true - __INLINE_CODE_3__ will perform the console.log for you.

__INLINE_CODE_4__

using this option __INLINE_CODE_5__ will add a timestamp to each print using the time it is printed.
primarily aimed at logging use-cases.

example
__CODE_BLOCK_6__

Keywords