Combine two or more styles or style functions into a new style function that can be called on strings to style them.

combine_styles(...)

# S3 method for crayon
$(crayon, style)

Arguments

...

The styles to combine. They will be applied from right to left.

crayon

A style function.

style

A style name that is included in names(styles()).

Value

The combined style function.

Details

It does not usually make sense to combine two foreground colors (or two background colors), because only the first one applied will be used.

It does make sense to combine different kind of styles, e.g. background color, foreground color, bold font.

The $ operator can also be used to combine styles. Note that the left hand side of $ is a style function, and the right hand side is the name of a style in styles().

Examples

## Use style names
alert <- combine_styles("bold", "red4", "bgCyan")
cat(alert("Warning!"), "\n")
#> Warning! 

## Or style functions
alert <- combine_styles(bold, red, bgCyan)
cat(alert("Warning!"), "\n")
#> Warning! 

## Combine a composite style
alert <- combine_styles(bold, combine_styles(red, bgCyan))
cat(alert("Warning!"), "\n")
#> Warning! 

## Shorter notation
alert <- bold $ red $ bgCyan
cat(alert("Warning!"), "\n")
#> Warning!