Add custom styles to one or more cells
With the tab_style() function we can target specific cells and apply styles
to them. This is best done in conjunction with the helper functions
cell_text(), cell_fill(), and cell_borders(). At present this function
is focused on the application of styles for HTML output only (as such, other
output formats will ignore all tab_style() calls). Using the aforementioned
helper functions, here are some of the styles we can apply:
the background color of the cell (cell_fill(): color)
the cell's text color, font, and size (cell_text(): color, font,
size)
the text style (cell_text(): style), enabling the use of italics or
oblique text.
the text weight (cell_text(): weight), allowing the use of thin to
bold text (the degree of choice is greater with variable fonts)
the alignment and indentation of text (cell_text(): align and
indent)
the cell borders (cell_borders())
tab_style(data, style, locations)
data |
A table object that is created using the |
style |
a vector of styles to use. The |
locations |
the cell or set of cells to be associated with the style.
Supplying any of the |
An object of class gt_tbl.



2-8
cell_text(), cell_fill(), and cell_borders() as helpers for
defining custom styles and cells_body() as one of many useful helper
functions for targeting the locations to be styled.
Other Create or Modify Parts:
tab_footnote(),
tab_header(),
tab_options(),
tab_row_group(),
tab_source_note(),
tab_spanner_delim(),
tab_spanner(),
tab_stubhead()
# Use `exibble` to create a gt table;
# add styles that are to be applied
# to data cells that satisfy a
# condition (using `tab_style()`)
tab_1 <-
exibble %>%
dplyr::select(num, currency) %>%
gt() %>%
fmt_number(
columns = vars(num, currency),
decimals = 1
) %>%
tab_style(
style = list(
cell_fill(color = "lightcyan"),
cell_text(weight = "bold")
),
locations = cells_body(
columns = vars(num),
rows = num >= 5000)
) %>%
tab_style(
style = list(
cell_fill(color = "#F9E3D6"),
cell_text(style = "italic")
),
locations = cells_body(
columns = vars(currency),
rows = currency < 100)
)
# Use `sp500` to create a gt table;
# color entire rows of cells based
# on values in a particular column
tab_2 <-
sp500 %>%
dplyr::filter(
date >= "2015-12-01" &
date <= "2015-12-15"
) %>%
dplyr::select(-c(adj_close, volume)) %>%
gt() %>%
tab_style(
style = cell_fill(color = "lightgreen"),
locations = cells_body(
rows = close > open)
) %>%
tab_style(
style = list(
cell_fill(color = "red"),
cell_text(color = "white")
),
locations = cells_body(
rows = open > close)
)
# Use `exibble` to create a gt table;
# replace missing values with the
# `fmt_missing()` function and then
# add styling to the `char` column
# with `cell_fill()` and with a
# CSS style declaration
tab_3 <-
exibble %>%
dplyr::select(char, fctr) %>%
gt() %>%
fmt_missing(everything()) %>%
tab_style(
style = list(
cell_fill(color = "lightcyan"),
"font-variant: small-caps;"
),
locations = cells_body(columns = vars(char))
)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.