{-# LANGUAGE OverloadedStrings #-} module Main where import qualified Data.Text.IO as T import System.Console.Pretty (Color (..), Style (..), bgColor, color, style, supportsPretty) main :: IO () main = do inColor <- supportsPretty if inColor then example else putStrLn "Sorry, this terminal doesn't support pretty ANSI codes" example :: IO () example = do -- simple style putStrLn ( style Underline "hello there!" ) -- simple color putStrLn ( color Yellow "this lib was designed to be easy" ) -- simple background putStrLn ( bgColor Blue "and the functions layer together easily" ) -- combining putStrLn ( bgColor White . color Red . style Bold $ "like so!" ) -- custom style & color let primary = bgColor Magenta . color Green . style Italic putStrLn ( primary "easily create your own helpers & styles" ) -- with both unicode string types putStrLn ( color Cyan "String...") T.putStrLn (color Red "and Text") -- set styling to none putStrLn ( primary $ style Normal "or if you need to remove any styling..." )