---
title: "Themes"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Themes}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
options(gtsummary.print_engine = "gt")
```
```{r setup}
#| eval: false
library(sumExtras)
library(gtsummary)
library(gt)
```
```{r setup2}
#| echo: false
#| message: false
#| warning: false
library(sumExtras)
library(gtsummary)
library(gt)
```
## `use_jama_theme()`
`use_jama_theme()` sets the `{gtsummary}` theme to JAMA compact styling for the rest of your session. It reduces padding, tightens font sizes, and produces tables suited for publication or reports.
```{r}
use_jama_theme()
trial |>
tbl_summary(by = trt) |>
extras()
```
This is equivalent to calling `gtsummary::set_gtsummary_theme(gtsummary::theme_gtsummary_compact("jama"))` but shorter to type.
To reset back to the default `{gtsummary}` theme:
```{r, eval=FALSE}
gtsummary::reset_gtsummary_theme()
```
## `theme_gt_compact()`
When you mix `{gtsummary}` tables with plain `{gt}` tables in the same document, the styling mismatch is noticeable. `theme_gt_compact()` applies the same JAMA compact look to `{gt}` tables.
:::::: {style="display: flex; gap: 15px; margin-bottom: 20px; align-items: flex-start;"}
::: {style="flex: 1; max-width: 48%;"}
#### Default gt
```{r gt-default, eval=FALSE}
trial |>
select(trt, age, grade) |>
head(10) |>
gt::gt()
```
:::
::: {style="flex: 1; max-width: 48%;"}
#### With theme_gt_compact()
```{r gt-compact, eval=FALSE}
trial |>
select(trt, age, grade) |>
head(10) |>
gt::gt() |>
theme_gt_compact()
```
:::
::::::
```{r build-gt-theme, echo=FALSE}
table_gt_default <- trial |>
dplyr::select(trt, age, grade) |>
head(10) |>
gt::gt()
table_gt_compact <- trial |>
dplyr::select(trt, age, grade) |>
head(10) |>
gt::gt() |>
theme_gt_compact()
```
:::::: {style="display: flex; gap: 15px; margin-bottom: 30px; align-items: flex-start;"}
::: {style="flex: 1; max-width: 48%;"}
```{r render-gt-default, echo=FALSE}
table_gt_default
```
:::
::: {style="flex: 1; max-width: 48%;"}
```{r render-gt-compact, echo=FALSE}
table_gt_compact
```
:::
::::::
You can layer additional `{gt}` styling on top:
```{r}
trial |>
dplyr::select(trt, age, grade, marker) |>
head(8) |>
gt::gt() |>
theme_gt_compact() |>
gt::tab_header(
title = "Trial Patient Sample",
subtitle = "First 8 patients"
)
```
## More Vignettes
* `vignette("sumExtras-intro")` -- getting started with extras()
* `vignette("labeling")` -- dictionary-based labeling
* `vignette("styling")` -- group headers and advanced formatting
* `vignette("options")` -- .Rprofile options for automatic labeling