boxx: Draw a banner-like box in the console

Description Usage Arguments About fonts and terminal settings Examples

View source: R/boxes.R

Description

Draw a banner-like box in the console

Usage

1
2
3
4
5
6
list_border_styles()

boxx(label, border_style = "single", padding = 1, margin = 0,
  float = c("left", "center", "right"), col = NULL,
  background_col = NULL, border_col = col, align = c("left",
  "center", "right"), width = console_width())

Arguments

label

Label to show, a character vector. Each element will be in a new line. You can color it using the crayon packag, see examples below.

border_style

String that specifies the border style. list_border_styles lists all current styles.

padding

Padding within the box. Either an integer vector of four numbers (bottom, left, top, right), or a single number x, which is interpreted as c(x, 3*x, x, 3*x).

margin

Margin around the box. Either an integer vector of four numbers (bottom, left, top, right), or a single number x, which is interpreted as c(x, 3*x, x, 3*x).

float

Whether to display the box on the "left", "center", or the "right" of the screen.

col

Color of text, and default border color. Either a crayon style function or a color name that is passed to crayon::make_style().

background_col

Background color of the inside of the box. Either a crayon style function, or a color name which will be used in crayon::make_style() to create a background style (i.e. bg = TRUE is used).

border_col

Color of the border. Either a crayon style function or a color name that is passed to crayon::make_style().

align

Alignment of the label within the box: "left", "center", or "right".

width

Width of the screen, defaults to getOption("width").

About fonts and terminal settings

The boxes might or might not look great in your terminal, depending on the box style you use and the font the terminal uses. We found that the Menlo font looks nice in most terminals an also in Emacs.

RStudio currently has a line height greater than one for console output, which makes the boxes ugly.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
## Simple box
boxx("Hello there!")

## All border styles
list_border_styles()

## Change border style
boxx("Hello there!", border_style = "double")

## Multiple lines
boxx(c("Hello", "there!"), padding = 1)

## Padding
boxx("Hello there!", padding = 1)
boxx("Hello there!", padding = c(1, 5, 1, 5))

## Margin
boxx("Hello there!", margin = 1)
boxx("Hello there!", margin = c(1, 5, 1, 5))
boxx("Hello there!", padding = 1, margin = c(1, 5, 1, 5))

## Floating
boxx("Hello there!", padding = 1, float = "center")
boxx("Hello there!", padding = 1, float = "right")

## Text color
boxx(crayon::cyan("Hello there!"), padding = 1, float = "center")

## Backgorund color
boxx("Hello there!", padding = 1, background_col = "brown")
boxx("Hello there!", padding = 1, background_col = crayon::bgRed)

## Border color
boxx("Hello there!", padding = 1, border_col = "green")
boxx("Hello there!", padding = 1, border_col = crayon::red)

## Label alignment
boxx(c("Hi", "there", "you!"), padding = 1, align = "left")
boxx(c("Hi", "there", "you!"), padding = 1, align = "center")
boxx(c("Hi", "there", "you!"), padding = 1, align = "right")

## A very customized box
star <- symbol$star
label <- c(paste(star, "Hello", star), "  there!")
boxx(
  crayon::white(label),
  border_style="round",
  padding = 1,
  float = "center",
  border_col = "tomato3",
  background_col="darkolivegreen"
)

Example output

+------------------+
|                  |
|   Hello there!   |
|                  |
+------------------+
[1] "single"        "double"        "round"         "single-double"
[5] "double-single" "classic"       "none"         
+------------------+
|                  |
|   Hello there!   |
|                  |
+------------------+
+------------+
|            |
|   Hello    |
|   there!   |
|            |
+------------+
+------------------+
|                  |
|   Hello there!   |
|                  |
+------------------+
+----------------------+
|                      |
|     Hello there!     |
|                      |
+----------------------+

   +------------------+
   |                  |
   |   Hello there!   |
   |                  |
   +------------------+


     +------------------+
     |                  |
     |   Hello there!   |
     |                  |
     +------------------+


     +------------------+
     |                  |
     |   Hello there!   |
     |                  |
     +------------------+

                               +------------------+
                               |                  |
                               |   Hello there!   |
                               |                  |
                               +------------------+
                                                            +------------------+
                                                            |                  |
                                                            |   Hello there!   |
                                                            |                  |
                                                            +------------------+
                               +------------------+
                               |                  |
                               |   Hello there!   |
                               |                  |
                               +------------------+
+------------------+
|                  |
|   Hello there!   |
|                  |
+------------------+
+------------------+
|                  |
|   Hello there!   |
|                  |
+------------------+
+------------------+
|                  |
|   Hello there!   |
|                  |
+------------------+
+------------------+
|                  |
|   Hello there!   |
|                  |
+------------------+
+-----------+
|           |
|   Hi      |
|   there   |
|   you!    |
|           |
+-----------+
+-----------+
|           |
|     Hi    |
|   there   |
|    you!   |
|           |
+-----------+
+-----------+
|           |
|      Hi   |
|   there   |
|    you!   |
|           |
+-----------+
                                +---------------+
                                |               |
                                |   * Hello *   |
                                |     there!    |
                                |               |
                                +---------------+

cli documentation built on Sept. 25, 2018, 5:06 p.m.