Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

deno github workflow npm package publishing workflow coverage percentage of crayon badge for crayon size of mod.ts

Crayon logo: Totally not creppy humanized crayon staring and waving hand at you

πŸ–οΈ Crayon

πŸ“š About

Crayon is terminal styling module written in Typescript.

From the ground up its goals is to be fast, relatively lightweight and modular.

πŸ–οΈ Crayon.js offers:

  • ⚑ High performance
  • πŸ“¦ No dependencies
  • πŸ§‘β€πŸ’» Good code quality
  • πŸ—‘οΈ Modularity (no unnecessary code)
  • 🧐 Familiar API (chalk-like)
  • πŸ¦„ Automatic color fallbacking
    • 🎨 Automatic color detection via color_support extension
  • πŸ”— Supported nesting & chaining
  • πŸͺ’ Not extending String.prototype
  • 🌈 24bit (16.7m -Β truecolor) and 8bit (256 - highcolor) color support

βš™οΈ Usage

  • On deno:
// Remember to replace "version" with semver version
import { crayon } from "";

console.log("its red!"));
  • On node:
import { crayon } from "crayon.js";

console.log("its red!"));

🧩 Extensions

To add new functionality to Crayon you can use ready or create your own extensions.

Crayon's extensions are stored in src/extensions

🀝 Contributing

Crayon is open for any contributions.
If you feel like you can enhance this project - please open an issue and/or pull request.
Code should be well document and easy to follow what's going on.

Since the start of development on Crayon 3.0 this project follows conventional commits spec.
If your pull request's code could introduce understandability trouble, please add comments to it.

πŸ“ Licensing

This project is available under MIT License conditions.