Manual specifications of column widths can be performed using the cols_width() function. We choose which columns get specific widths (in pixels, usually by use of the px() helper function). Width assignments are supplied in ... through two-sided formulas, where the left-hand side defines the target columns and the right-hand side is a single width value in pixels.

cols_width(data, ..., .list = list2(...))



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


Expressions for the assignment of column widths for the table columns in data. Two-sided formulas (e.g, <LHS> ~ <RHS>) can be used, where the left-hand side corresponds to selections of columns and the right-hand side evaluates to single-length character values in the form {##}px (i.e., pixel dimensions); the px() helper function is best used for this purpose. Column names should be enclosed in vars(). The column-based select helpers starts_with(), ends_with(), contains(), matches(), one_of(), and everything() can be used in the LHS. Subsequent expressions that operate on the columns assigned previously will result in overwriting column width values (both in the same cols_width() call and across separate calls). All other columns can be assigned a default width value by using TRUE or everything() on the left-hand side.


Allows for the use of a list as an input alternative to ....


An object of class gt_tbl.


Normally, column widths are automatically set to span across the width of the container (both table and container widths can be individually modified with the table.width and container.width options within tab_options()). When using cols_width() though, the table.width option is disregarded in favor of the pixel values set for each column.


Function ID


See also


# Use `exibble` to create a gt table; # with named arguments in `...`, we # can specify the exact widths for # table columns (using `everything()` # or `TRUE` at the end will capture # all remaining columns) tab_1 <- exibble %>% dplyr::select( num, char, date, datetime, row ) %>% gt() %>% cols_width( vars(num) ~ px(150), ends_with("r") ~ px(100), starts_with("date") ~ px(200), everything() ~ px(60) )