library(quartomonothemer)
library(showtext)
<- "Josefin Sans"
font_title <- "Montserrat"
font_text <- "Noto Sans"
font_sans <- "#009F8C"
color_base <- "#95DFD6"
color_base_light <- "#B75C9D"
color_accent <- "#DBA6CC"
color_accent_light <- "#bebebe"
gray <- "#6d6d6d"
darkgray
font_add_google(font_title)
font_add_google(font_text)
showtext_auto()
style_mono_quarto(
font_title = font_title,
font_text = font_text,
font_sans = font_sans,
color_base = color_base,
color_accent = color_accent,
color_link = color_accent,
color_code = color_base,
size_base = 30,
path_scss = "quartomonothemer.scss"
)
quartomonothemer
This package provides custom Quarto Revealjs, ggplot2
, and gt
themes. This work is strongly influenced by xaringanthemer, but supports only limited features.
You can find more examples here
Installation
You can install the development version of quartomonothemer from R-universe with:
install.packages("quartomonothemer", repos = "https://kazuyanagimoto.r-universe.dev")
Example
First, add custom.scss
file to the YAML header.
format:
revealjs:
theme: custom.scss
Then, run style_mono_quarto()
inside of the slide qmd file. It produces the quartomonothemer.scss
This package also provide theme_quarto()
based on the title and text fonts,
library(palmerpenguins)
library(tidyverse)
|>
penguins ggplot(aes(x = flipper_length_mm, y = bill_length_mm,
color = species, shape = species)) +
geom_point(size = 3) +
scale_color_manual(values = c(color_base, color_base_light, darkgray)) +
labs(x = "Flipper Length (mm)", y = "Bill Length (mm)") +
theme_quarto() +
theme(legend.position = c(0.9, 0.1))
and gt_theme_quarto()
as a gt
theme!
library(gt)
|>
penguins filter(!is.na(sex)) |>
group_by(species, sex) |>
summarize(bill_length = mean(bill_length_mm, na.rm = TRUE),
.groups = "drop") |>
pivot_wider(names_from = "sex", values_from = "bill_length",
names_prefix = "bill_length_") |>
mutate(ratio_bar = 100 * bill_length_female / bill_length_male,
ratio = ratio_bar / 100) |>
gt(rowname_col = "species") |>
cols_label(bill_length_female = "Female", bill_length_male = "Male",
ratio_bar = "Female/Male", ratio = "Pct.") |>
fmt_number(columns = starts_with("bill_length"), decimals = 1) |>
fmt_percent(ratio, decimals = 0) |>
gt_plt_bar_pct(ratio_bar, fill = color_base, scaled = TRUE) |>
gt_theme_quarto()
Note that it does not provide any color maps. You need to specify by scale_*_manual()