- Expressive API
- 256/TrueColor support
- Nest styles
- Auto downgrading to terminal supported color
- No extensions on
String
- rgb & hsl & hsv & hex
- Built-in 100+ beautiful colors
Chalk's API is very similar to chalk -- one of the most popular packages on npm.
print(chalk.cyan.on("cyan")) // `ck` is an alias to `chalk`
// chainable
print(ck.red.bgBlue.italic.underline.on("red bgBlue italic underline"))
// combine terminal string and string
print(ck.red.on("ERROR") + " something went wrong. " + ck.green.on("but no worry! I will..."))
// rgb & hsl & hsv & hex support
print(ck.fg(.rgb(0, 92, 197)).bg(.hex(0xFA4B8B)).on("meow"))
// custom foreground color and background color with 100+ handpicked colors
print(ck.fg(.darkMagenta).bg(.lightGoldenRodYellow).bold.on("hi"))
// nest
print(ck.magenta.underline.on("begin" + ck.red.bold.on("important") + "end"))
print(ck.magenta.underline.on("begin", ck.red.bold.on("important"), "end"))
reset
bold
faint // aka dim, not widely supported.
italic
underline
blink
reverse
conceal // aka hidden, not widely supported.
crossedOut // aka strikethrough, not widely supported.
The powerful color system is built on Rainbow.
// with `bg` prefix will set background color
black
red
green
yellow
blue
magenta
cyan
white
blackBright
redBright
greenBright
yellowBright
blueBright
magentaBright
cyanBright
whiteBright
ck.fg(.rgb(0, 100, 200))
ck.fg(.hsl(300, 50, 50))
ck.fg(.hsv(300, 50, 50))
ck.bg(.hex(0x123456))
ck.bg(.hex("#123456")
ck.bg(.hex("#abc")
let color = Color.Material.red50
let color = Color.Material.purple500
let color = Color.CSS.navy
let color = Color.CSS.tomato
ck.fg(color)
ck.bg(color)
//...
dependencies: [
.package(url: "https://github.com/luoxiu/Chalk", from: "0.2.0")
]
pod 'Chalk', '~> 0.2.0'
Inspired by the awesome javascript library chalk.
- Rainbow - 🌈 Color conversion and manipulation library for Swift with no dependence on UIKit/AppKit.
If you find a bug, open an issue, if you want to add new features, feel free to submit a pull request. Any contributing is welcome at all times!