console-strings
v0.2.15
Published
String utilities that understand terminal escape sequences
Downloads
15
Maintainers
Readme
console-strings
Social Media Photo by Dominik Scythe on Unsplash
A dual module that can be used via import
, require
, or directly via https://esm.run/console-strings
, to automatically wrap \x1b[...
escape chars around strings in a terminal or devtools compatible way.
import {
bold, // show bold text
light, // show a lighter text - alias: dim
italic, // show italic text
underline, // show underlined text
strike, // show a strike-through text
overline, // show an overline (not in devtools)
foreground, // use a specific text color
background, // use a specific background color
reset, // reset any broken output (not needed but handy)
} from 'console-strings';
// ⚠️ needed only for x-browser compatibility
// not needed at all in Bun, NodeJS or Chrome/ium browsers
import * as console from 'console-strings/browser';
// exported: error, info, log, warn
console.log(`
This is ${bold('bold')} text
while this should be ${light('light')}.
An ${italic('italic')} text is allowed
and so it should be ${underline('underlined')}.
A ${strike('strike')} would work too but
an ${overline('overline')} might not.
Combine ${underline(bold(italic('underlined bold italic')))}
or any other variant or add some ${foreground('color', 32)} and
${background(foreground('background', 30), 42)} color too. ${reset()}
`);
Markdown
The console-strings/md
default export converts:
- bold via
**double**
stars - underline via
__double__
underlines - light or dim via
-single-
or--double--
dashes - strike via
~single~
or~~double~~
dashes - italic via single
*star*
or single_underlined_
only - foreground via
f#32#color value#
orf#R;G;B#rgb value#
- background via
b#42#color value#
orb#R;G;B#rgb value#
import md from 'console-strings/md';
console.log(md('Hello **World**!'));
For anything more complex please see consolemd.
Colors
All colors compatible with devtools are described in here and this is a summary:
| Name | Foreground | Background | Light theme | Dark theme |
| :------------- | :--------- | :--------- | :---------- | :---------- |
| Black | 30
| 40
| #000000 | #000000 |
| Red | 31
| 41
| #AA0000 | #ED4E4C |
| Green | 32
| 42
| #00AA00 | #01C800 |
| Yellow | 33
| 43
| #AA5500 | #D2C057 |
| Blue | 34
| 44
| #0000AA | #2774F0 |
| Magenta | 35
| 45
| #AA00AA | #A142F4 |
| Cyan | 36
| 46
| #00AAAA | #12B5CB |
| White | 37
| 47
| #AAAAAA | #CFD0D0 |
| Bright Black | 90
| 100
| #555555 | #898989 |
| Bright Red | 91
| 101
| #FF5555 | #F28B82 |
| Bright Green | 92
| 102
| #55FF55 | #01C801 |
| Bright Yellow | 93
| 103
| #FFFF55 | #DDFB55 |
| Bright Blue | 94
| 104
| #5555FF | #669DF6 |
| Bright Magenta | 95
| 105
| #FF55FF | #D670D6 |
| Bright Cyan | 96
| 106
| #55FFFF | #84F0FF |
| Bright White | 97
| 107
| #FFFFFF | #FFFFFF |
If a foreground value for a background(content, value)
is passed along, or vice-versa, a ⚠
char would prefix the error without throwing while outputting.
The browser
variant color is chosen after a one-off matchMedia('(prefers-color-scheme:dark)')
check.