Skip to content

tool3/styl3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

About

πŸ’…πŸΌ themeable cli coloring

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors