Auto theming is really only "guaranteed" to work inside of a shiny
runtime. In any other context, auto theming is based on a set of heuristics,
which won't fit every use case. As a workaround, this function allows one
to configure both a preference for specific auto values (e.g., bg
, fg
, etc)
as well as the priority
that certain information should receive.
auto_config(
bg = NULL,
fg = NULL,
accent = NULL,
font = NULL,
priority = c("shiny", "config", "bslib", "rstudio")
)
auto_config_set(config)
auto_config_get()
a background color.
a foreground color.
a color for making certain graphical markers 'stand out'
(e.g., the fitted line color for ggplot2::geom_smooth()
).
Can be 2 colors for lattice (stroke vs fill accent).
a font_spec()
object. If missing, font defaults are not altered.
the order of priority to use when resolving auto values. Possible values include:
"shiny"
: use shiny::getCurrentOutputInfo()
values (if any) to resolve auto values.
"config"
: use the values provided to this function (if any) to resolve auto values.
"bslib"
: use bslib::bs_get_variables()
values (if any)
to resolve auto values (only relevant when knitr is in progress).
"rstudio"
: use rstudioapi::getThemeInfo()
values (if any) to resolve auto values.
a auto_config()
object.
a config (list-like) object.
Configuring auto theming behavior is especially useful
for developers of a custom rmarkdown output document that wish to
have more sensible auto theming behavior for users of the document.
In particular, by having the output document call auto_config_set()
"pre-knit" with the document's styling preferences (and restoring the
old defaults "post-knit"), users of the output document can then simply
call thematic_on()
within their document to use those preferences.
Call this function with no arguments to get the current auto defaults.
old_config <- auto_config_set(auto_config("black", "white"))
thematic_with_theme(
thematic_theme(), {
plot(1:10, 1:10)
})
#> Warning: thematic was unable to resolve `accent='auto'`. Try providing an actual color (or `NA`) to the `accent` argument of `thematic_on()`. By the way, 'auto' is only officially supported in `shiny::renderPlot()`, some rmarkdown scenarios (specifically, `html_document()` with `theme!=NULL`), in RStudio, or if `auto_config_set()` is used.
auto_config_set(old_config)