https://github.com/ehmicky/chalk-string
Chalk with style strings.
https://github.com/ehmicky/chalk-string
ansi bash chalk cli color colors config configuration console javascript library nodejs option rgb shell terminal theme tty typescript windows
Last synced: 7 months ago
JSON representation
Chalk with style strings.
- Host: GitHub
- URL: https://github.com/ehmicky/chalk-string
- Owner: ehmicky
- License: mit
- Created: 2022-10-15T20:05:07.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-14T20:48:31.000Z (over 1 year ago)
- Last Synced: 2024-03-14T22:24:05.586Z (over 1 year ago)
- Topics: ansi, bash, chalk, cli, color, colors, config, configuration, console, javascript, library, nodejs, option, rgb, shell, terminal, theme, tty, typescript, windows
- Language: JavaScript
- Homepage:
- Size: 4.32 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://www.npmjs.com/package/chalk-string)
[](/src/main.d.ts)
[](https://codecov.io/gh/ehmicky/chalk-string)
[](https://fosstodon.org/@ehmicky)
[](https://medium.com/@ehmicky)Chalk with style strings.
[Chalk](https://github.com/chalk/chalk) adds styles to terminal strings.
`chalk-string` is a thin wrapper around it which allows specifying those styles
as a string. This enables user-defined or dynamic styling.# Hire me
Please
[reach out](https://www.linkedin.com/feed/update/urn:li:activity:7117265228068716545/)
if you're looking for a Node.js API or CLI engineer (11 years of experience).
Most recently I have been [Netlify Build](https://github.com/netlify/build)'s
and [Netlify Plugins](https://www.netlify.com/products/build/plugins/)'
technical lead for 2.5 years. I am available for full-time remote positions.# Example
```js
import chalkString from 'chalk-string'const addStyles = chalkString()
addStyles('red', 'input') // Same as: chalk.red('input')
addStyles('red bold', 'input') // Same as: chalk.red.bold('input')
addStyles('hex-ffffff', 'input') // Same as: chalk.hex('ffffff')('input')
addStyles('rgb-10-20-30', 'input') // Same as: chalk.rgb(10, 20, 30)('input')addStyles('invalidStyle', 'input') // Invalid styles throw an error
```# Install
```bash
npm install chalk-string
```This package works in Node.js >=18.18.0.
This is an ES module. It must be loaded using
[an `import` or `import()` statement](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c),
not `require()`. If TypeScript is used, it must be configured to
[output ES modules](https://www.typescriptlang.org/docs/handbook/esm-node.html),
not CommonJS.# API
## chalkString(options?)
`options` [`Options?`](#options)\
_Return value_: [`addStyles()`](#addstylesstyles-input)### Options
#### colors
_Type_: `boolean`\
_Default_: `undefined`Whether colors should be enabled/disabled, regardless of terminal support.
Colors support is automatically detected, so this is only meant to override that
default behavior.#### stream
_Type_:
[`Stream`](https://nodejs.org/api/stream.html#stream_class_stream_writable)\
_Default_: [`process.stdout`](https://nodejs.org/api/process.html#process_process_stdout)Stream used to detect colors support. This should be the file or terminal where
the colors are output.### addStyles(styles, input)
`styles` [`stylesString`](#available-styles)\
`input` `string`\
_Return value_: `string`Apply [styles](#available-styles) to `input` then return it.
# Available styles
```sh
# Standard styles
bold underline inverse reset# Those styles do not always work on Windows
dim italic hidden strikethrough# Hidden when the terminal does not support colors
visible# Basic colors
black red green yellow blue magenta cyan white gray
blackBright redBright greenBright yellowBright blueBright
magentaBright cyanBright whiteBright# Advanced colors
hex-ffffff
rgb-255-255-255# Background colors
bgBlack bgRed bgGreen bgYellow bgBlue bgMagenta bgCyan bgWhite bgGray
bgBlackBright bgRedBright bgGreenBright bgYellowBright bgBlueBright
bgMagentaBright bgCyanBright bgWhiteBright
bgHex-* bgRgb-*
```# Related projects
- [`colors-option`](https://github.com/ehmicky/colors-option): Let users toggle
colors.
- [`terminal-theme`](https://github.com/ehmicky/terminal-theme): 🎨 Use a color
theme for your code's terminal output# Support
For any question, _don't hesitate_ to [submit an issue on GitHub](../../issues).
Everyone is welcome regardless of personal background. We enforce a
[Code of conduct](CODE_OF_CONDUCT.md) in order to promote a positive and
inclusive environment.# Contributing
This project was made with ❤️. The simplest way to give back is by starring and
sharing it online.If the documentation is unclear or has a typo, please click on the page's `Edit`
button (pencil icon) and suggest a correction.If you would like to help us fix a bug or add a new feature, please check our
[guidelines](CONTRIBUTING.md). Pull requests are welcome!