Package Exports
- @ogma/styler
- @ogma/styler/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ogma/styler) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@ogma/styler
String formatting, made easy.
Why Not Chalk?
Mostly this package was created for academic purposes and better understanding terminal SGRs, but I also like to know the code I'm using and how it works. Chalk is great, but the use of chaining or using the property as a method is a bit strange to me. With @ogma/styler I was able to use getters for option chaining, a const enum for all the SGR values, and a single method for finalizing the application to the string that is being styled.
With all that said, if you like Chalk, use Chalk. It's a great trusted package.
Use
To use this package, simply install it
pnpm i @ogma/styler
yarn add @ogma/styler
npm i @ogma/stylerand import the style instance from the package
import { style } from '@ogma/styler';And now you can chain options for your string, just make sure to apply to the string (or primitive) you want to style.
console.log(style.blue.yellowBg.underline.apply('Hello World!'));
// prints \x1B[34m\x1B[43m\x1B[4mHello World!\x1B[0m
What styles are available?
Most of the values on the SGR list are available to use. underline, italic, bold, double-underline, blink, and color to name a few.
Turning Off Styling
Colors Only
If you'd like to turn off colors only you can do one of a few things.
- pass in a
streamtostyle.child()that has agetColorDepthproperty that is a function that returns the value1. - Set the
NO_COLORorNODE_DISABLE_COLORenvironment variables to any value. So long asprocess.env.NO_COLORis truthy, colors will be disabled - Set the
FORCE_COLORenvironment variable to1.
All Styling
If you want no styling in your production environment you can set the NO_STYLE environment variable to anything that will result in a truthy check.