The opt_css() function makes it possible to add CSS to a gt table. This CSS will be added after the compiled CSS that gt generates automatically when the object is transformed to an HTML output table. You can supply css as a vector of lines or as a single string.

opt_css(data, css, add = TRUE, allow_duplicates = FALSE)



A table object that is created using the gt() function.


The CSS to include as part of the rendered table's <style> element.


If TRUE, the default, the CSS is added to any already-defined CSS (typically from previous calls of opt_table_font(), opt_css(), or, directly setting CSS the table.additional_css value in tab_options()). If this is set to FALSE, the CSS provided here will replace any previously-stored CSS.


When this is FALSE (the default), the CSS provided here won't be added (provided that add = TRUE) if it is seen in the already-defined CSS.


An object of class gt_tbl.


Function ID


See also


# Use `exibble` to create a gt table and # format the data in both columns; with # `opt_css()` insert CSS rulesets as # as string and be sure to set the table # ID explicitly (here as "one") tab_1 <- exibble %>% dplyr::select(num, currency) %>% gt(id = "one") %>% fmt_currency( columns = vars(currency), currency = "HKD" ) %>% fmt_scientific( columns = vars(num) ) %>% opt_css( css = " #one .gt_table { background-color: skyblue; } #one .gt_row { padding: 20px 30px; } #one .gt_col_heading { text-align: center !important; } " )