«The best colour in the whole world is the one that looks good on you.»
— Coco Chanel
colourista is the library that provides a simple and convenient
interface for printing colourful messages to the
colourista allows to easily control enabling
and disabling of colours.
The library is based on
however, in contradistinction to this Haskell library,
a high-level wrapper focused on easily achieved output modification
without low-level setup.
The two main functions that
colourista provides are:
formatWith— the function that formats pure output by applying provided formatting codes. It works with polymorphic strings.
formattedMessage— the function that outputs the formatted output directly into the terminal (working in
The library also provides a set of different pure and impure helpers for the colouring and emphasis.
Simple output example:
Example of disabling colouring. The colour mode controlling is based on the Implicit Parameters GHC feature.
How to use
colourista is compatible with the latest GHC compiler versions starting from
In order to start using
colourista in your project, you will need to set it up with the three easy steps:
- Add the dependency on
coloristain your project's
.cabalfile. For this, you should modify the
build-dependssection by adding the name of this library. After the adjustment, this section could look like this:
build-depends: base ^>= 4.14 , colourista ^>= 0.1 , ...
- In the module where you wish to use the colourful output with
colourista, you should add the import:
import Colourista (...)
- Now you can use the functions from the library. For example:
import qualified Data.Text as Text main :: IO () main = successMessage $ Text.pack "All set up!"
Usage with Stack
colourista is not available on your current Stackage resolver yet, fear not! You can still use
it from Hackage by adding the following to the
extra-deps section of your
extra-deps: - colourista-0.1.0.0 - ...
Then you can add it as a dependency in your
package.yaml file as usual:
library: dependencies: - colourista
*Note that all licence references and agreements mentioned in the colourista README section above are relevant to that project's source code only.