Skip to content
This repository was archived by the owner on Oct 25, 2025. It is now read-only.

Repository files navigation

tempera

END OF DEVELOPMENT NOTICE - This module has been discontinued

Template based terminal coloring made really easy.

Usage

Tempera allows to add coloring to terminal in a really easy way.

Colorize strings

To colorize strings, simply use the Colorize function, passing a list of styles you want to apply. The list of supported color names correspondes to the keys of ANSICodes variable.

import "github.com/ShogunPanda/tempera"

inRed := tempera.Colorize("Colorized", "red")
inRedWithBlueBackground := tempera.Colorize("Colorized", "red bgBlue")

Colorize templates

To colorize a template using a tagged template syntax, simply use the ColorizeTemplate function.

import "github.com/ShogunPanda/tempera"

colored := tempera.ColorizeTemplate("{red}This is in red, {green underline}this in green underlined{-}, this in red again.")

The template recognizes styles between curly braces (use a double opening brace to escape them) and the token {-} as universal closing tag (which also restores the previous style).

The closing tag at the end of the string can be omitted, since tempera will append the global reset style (\x1b[0m) if any style was set.

If you want to discard styles to be restored, use the {reset} token.

Setting custom styles

If you want to define custom styles, use the AddCustomStyle function.

import "github.com/ShogunPanda/tempera"

tempera.AddCustomStyle("important", "red underline")
colored := tempera.ColorizeTemplate("This is in red, underlined.", "important")

256 and 16 millions colors support

tempera supports 256 ANSI codes and 16m RGB colors. Just give it a try:

import "github.com/ShogunPanda/tempera"

fgAnsi256 := tempera.Colorize("color me", "ansi:100")
bgAnsi256 := tempera.Colorize("color me", "bgANSI:3,4,5")

fgRgb := tempera.Colorize("color me", "rgb:255,0,0")
bgRgb := tempera.Colorize("color me", "bgRGB:0,255,0")

fgHex := tempera.Colorize("color me", "hex:#FF0000")
bgHex := tempera.Colorize("color me", "bgHEX:00FF00")

ANSI, RGB, and HEX can be used in style definitions and templates as well.

API Documentation

The API documentation can be found here.

Contributing to tempera

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
  • Fork the project.
  • Start a feature/bugfix branch.
  • Commit and push until you are happy with your contribution.
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.

Copyright

Copyright (C) 2018 and above Shogun (shogun@cowtech.it).

Licensed under the MIT license, which can be found at https://choosealicense.com/licenses/mit.

About

Template based terminal coloring made really easy.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages