|
- template_variables <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "text_color",
- "#000",
- "body",
- "Text Color",
- "header_color",
- "#000",
- "h1, h2, h3",
- "Header Color",
- "background_color",
- "#FFF",
- ".remark-slide-content",
- "Slide Background Color",
- "link_color",
- "rgb(249, 38, 114)",
- "a, a > code",
- "Link Color",
- "text_bold_color",
- NULL,
- "strong",
- "Bold Text Color",
- "text_slide_number_color",
- "{inverse_background_color}",
- ".remark-slide-number",
- "Slide Number Color",
- "padding",
- "1rem 4rem 1rem 4rem",
- ".remark-slide-content",
- "Slide Padding in `top right [bottom left]` format",
- "background_image",
- NULL,
- ".remark-slide-content",
- "Background image applied to each *and every* slide. Set `title_slide_background_image = \"none\"` to remove the background image from the title slide",
- "background_size",
- NULL,
- ".remark-slide-content",
- "Background image size, requires `background_image` to be set. If `background_image` is set, `background_size` will default to `cover` so the backround fills the screen. If both `background_image` and `background_position` are set, will default to 100 percent",
- "background_position",
- NULL,
- ".remark-slide-content",
- "Background image position, requires `background_image` to be set, and it is recommended to adjust `background_size`",
- "code_highlight_color",
- "rgba(255,255,0,0.5)",
- ".remark-code-line-highlighted",
- "Code Line Highlight",
- "code_inline_color",
- "#000",
- ".remark-inline-code",
- "Inline Code Color",
- "code_inline_background_color",
- NULL,
- ".remark-inline-code",
- "Inline Code Background Color",
- "code_inline_font_size",
- "1em",
- ".remark-inline-code",
- "Inline Code Text Font Size",
- "inverse_background_color",
- "#272822",
- ".inverse",
- "Inverse Background Color",
- "inverse_text_color",
- "#d6d6d6",
- ".inverse",
- "Inverse Text Color",
- "inverse_text_shadow",
- "{FALSE}",
- ".inverse",
- "Enables Shadow on text of inverse slides",
- "inverse_header_color",
- "#f3f3f3",
- ".inverse h1, .inverse h2, .inverse h3",
- "Inverse Header Color",
- "title_slide_text_color",
- "{inverse_text_color}",
- ".title-slide",
- "Title Slide Text Color",
- "title_slide_background_color",
- "{inverse_background_color}",
- ".title-slide",
- "Title Slide Background Color",
- "title_slide_background_image",
- NULL,
- ".title-slide",
- "Title Slide Background Image URL",
- "title_slide_background_size",
- NULL,
- ".title-slide",
- "Title Slide Background Image Size, defaults to \"cover\" if background image is set",
- "title_slide_background_position",
- NULL,
- ".title-slide",
- "Title Slide Background Image Position",
- "footnote_color",
- NULL,
- ".footnote",
- "Footnote text color (if `NA`, then it will be the same color as `text_color`)",
- "footnote_font_size",
- "0.9em",
- ".footnote",
- "Footnote font size",
- "footnote_position_bottom",
- "3em",
- ".footnote",
- "Footnote location from bottom of screen",
- "left_column_subtle_color",
- "#777",
- ".left-column h2, .left-column h3",
- "Left Column Text (not last)",
- "left_column_selected_color",
- "#000",
- ".left-column h2:last-of-type, .left-column h3:last-child",
- "Left Column Current Selection",
- "blockquote_left_border_color",
- "lightgray",
- "blockquote",
- "Blockquote Left Border Color",
- "table_border_color",
- "#666",
- "table: border-top, border-bottom",
- "Table top/bottom border",
- "table_row_border_color",
- "#ddd",
- "table thead th: border-bottom",
- "Table row inner bottom border",
- "table_row_even_background_color",
- "#eee",
- "thead, tfoot, tr:nth-child(even)",
- "Table Even Row Background Color",
- "text_font_size",
- "20px",
- ".remark-slide-content",
- "Slide Body Text Font Size",
- "header_h1_font_size",
- "55px",
- ".remark-slide-content h1",
- "h1 Header Text Font Size",
- "header_h2_font_size",
- "45px",
- ".remark-slide-content h2",
- "h2 Header Text Font Size",
- "header_h3_font_size",
- "35px",
- ".remark-slide-content h3",
- "h3 Header Text Font Size",
- "header_background_auto",
- "{FALSE}",
- "",
- "Add background under slide title automatically for h1 header elements. If not enabled, use `class: header_background` to enable",
- "header_background_color",
- "{header_color}",
- ".remark-slide-content h1",
- "Background Color for h1 Header with Background",
- "header_background_text_color",
- "{background_color}",
- ".remark-slide-content h1",
- "Text Color for h1 Header with Background",
- "header_background_padding",
- "2rem 4rem 1.5rem 4rem",
- ".remark-slide-content h1",
- "Padding for h1 Header with Background",
- "header_background_content_padding_top",
- "7rem",
- ".remark-slide-content",
- "Top Padding for Content in Slide with Header with Background",
- "header_background_ignore_classes",
- "{c('normal', 'inverse', 'title', 'middle', 'bottom')}",
- ".remark-slide-content",
- "Slide Classes Where Header with Background will not be Applied",
- "text_slide_number_font_size",
- "0.9em",
- ".remark-slide-number",
- "Slide Number Text Font Size",
- "text_font_google",
- NULL,
- "body",
- "Use `google_font()` to specify body font",
- "text_font_family",
- "'Droid Serif'",
- "body",
- "Body Text Font Family",
- "text_font_weight",
- "normal",
- "body",
- "Body Text Font Weight",
- "text_font_url",
- "https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic",
- "@import url()",
- "Body Text Font URL(s)",
- "text_font_family_fallback",
- "'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC'",
- "body",
- "Body Text Font Fallbacks",
- "text_font_base",
- "serif",
- "body",
- "Body Text Base Font (Total Failure Fallback)",
- "header_font_google",
- NULL,
- "body",
- "Use `google_font()` to specify header font",
- "header_font_family",
- "'Yanone Kaffeesatz'",
- "h1, h2, h3",
- "Header Font Family",
- "header_font_weight",
- "normal",
- "h1, h2, h3",
- "Header Font Weight",
- "header_font_url",
- "https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz",
- "@import url",
- "Header Font URL",
- "code_font_google",
- NULL,
- "body",
- "Use `google_font()` to specify code font",
- "code_font_family",
- "'Source Code Pro'",
- ".remark-code, .remark-inline-code",
- "Code Font Family",
- "code_font_size",
- "0.9em",
- ".remark-inline",
- "Code Text Font Size",
- "code_font_url",
- "https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700",
- "@import url",
- "Code Font URL",
- "code_font_family_fallback",
- "'Lucida Console', Monaco",
- ".remark-code, .remark-inline-code",
- "Code Font Fallback"
- )
-
- set_default <- function(tv, ...) {
- vars <- c(...)
- for (var in names(vars)) {
- tv[tv$variable == var, "default"] <- vars[var]
- }
- tv
- }
-
- template_mono_light <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "base_color",
- "#23395b",
- "multiple",
- "Monotone base color, works best with a strong color",
- "white_color",
- "{lighten_color(base_color, 0.9)}",
- "multiple",
- "Brightest color used, default is a very light version of `base_color`",
- "black_color",
- "{darken_color(base_color, 0.3)}",
- "multiple",
- "Darkest color used, default is a very dark, version of `base_color`"
- )
- template_mono_light <- do.call("rbind", list(template_mono_light, template_variables))
- template_mono_light <- set_default(
- template_mono_light,
- text_color = "{black_color}",
- header_color = "{base_color}",
- background_color = "{white_color}",
- link_color = "{base_color}",
- text_bold_color = "{base_color}",
- text_slide_number_color = "{base_color}",
- code_inline_color = "{base_color}",
- inverse_background_color = "{base_color}",
- inverse_text_color = "{white_color}",
- inverse_header_color = "{white_color}",
- left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
- left_column_selected_color = "{base_color}",
- blockquote_left_border_color = "{apply_alpha(base_color, 0.5)}",
- table_row_even_background_color = "{lighten_color(base_color, 0.8)}"
- )
-
- template_mono_dark <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "base_color",
- "#cbf7ed",
- "multiple",
- "Monotone Base Color, works best with a light color.",
- "white_color",
- "{lighten_color(base_color, 0.8)}",
- "multiple",
- "Brightest color used, default is a very light version of `base_color`",
- "black_color",
- "{darken_color(base_color, 0.85)}",
- "multiple",
- "Darkest color used, default is a very dark, version of `base_color`"
- )
- template_mono_dark <- do.call("rbind", list(template_mono_dark, template_variables))
- template_mono_dark <- set_default(
- template_mono_dark,
- text_color = "{white_color}",
- header_color = "{base_color}",
- background_color = "{black_color}",
- link_color = "{base_color}",
- text_bold_color = "{base_color}",
- text_slide_number_color = "{base_color}",
- code_inline_color = "{base_color}",
- inverse_background_color = "{base_color}",
- inverse_text_color = "{black_color}",
- inverse_header_color = "{black_color}",
- left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
- left_column_selected_color = "{base_color}",
- blockquote_left_border_color = "{apply_alpha(base_color, 0.5)}",
- table_row_even_background_color = "{darken_color(base_color, 0.7)}"
- )
-
- template_mono_accent <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "base_color",
- "#43418A",
- "multiple",
- "Monotone Base Color, works best with a strong color",
- "white_color",
- "#FFFFFF",
- "multiple",
- "Brightest color used",
- "black_color",
- "#272822",
- "multiple",
- "Darkest color used"
- )
- template_mono_accent <- do.call("rbind", list(template_mono_accent, template_variables))
- template_mono_accent <- set_default(
- template_mono_accent,
- text_color = "{black_color}",
- header_color = "{base_color}",
- background_color = "{white_color}",
- link_color = "{base_color}",
- text_bold_color = "{base_color}",
- text_slide_number_color = "{base_color}",
- code_inline_color = "{base_color}",
- inverse_background_color = "{base_color}",
- inverse_text_color = "{white_color}",
- inverse_header_color = "{white_color}",
- left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
- left_column_selected_color = "{base_color}",
- blockquote_left_border_color = "{apply_alpha(base_color, 0.5)}",
- table_row_even_background_color = "{lighten_color(base_color, 0.7)}"
- )
-
- template_mono_accent_inverse <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "base_color",
- "#3C989E",
- "multiple",
- "Monotone Base Color, works best with a light color",
- "white_color",
- "#FFFFFF",
- "multiple",
- "Brightest color used, default is a very light version of `base_color`",
- "black_color",
- "{darken_color(base_color, 0.9)}",
- "multiple",
- "Darkest color used, default is a very dark, version of `base_color`"
- )
- template_mono_accent_inverse <- do.call("rbind", list(template_mono_accent_inverse, template_variables))
- template_mono_accent_inverse <- set_default(
- template_mono_accent_inverse,
- text_color = "{white_color}",
- header_color = "{base_color}",
- background_color = "{black_color}",
- link_color = "{base_color}",
- text_bold_color = "{base_color}",
- text_slide_number_color = "{base_color}",
- code_inline_color = "{base_color}",
- inverse_background_color = "{base_color}",
- inverse_text_color = "{black_color}",
- inverse_header_color = "{black_color}",
- left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
- left_column_selected_color = "{base_color}",
- blockquote_left_border_color = "{apply_alpha(base_color, 0.5)}",
- table_row_even_background_color = "{darken_color(base_color, 0.7)}"
- )
-
- template_duo_light <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "primary_color",
- "#1F4257",
- "multiple",
- "Duotone Secondary Color",
- "secondary_color",
- "#F97B64",
- "multiple",
- "Duotone Primary Color",
- "white_color",
- "{lighten_color(primary_color, 0.99)}",
- "multiple",
- "Brightest color used, default is a very light version of `primary_color`",
- "black_color",
- "{darken_color(secondary_color, 0.9)}",
- "multiple",
- "Darkest color used, default is a very dark version of `secondary_color`"
- )
- template_duo_light <- do.call("rbind", list(template_duo_light, template_variables))
- template_duo_light <- set_default(
- template_duo_light,
- text_color = "{black_color}",
- header_color = "{primary_color}",
- background_color = "{white_color}",
- link_color = "{secondary_color}",
- text_bold_color = "{secondary_color}",
- text_slide_number_color = "{primary_color}",
- code_inline_color = "{secondary_color}",
- inverse_background_color = "{primary_color}",
- inverse_text_color = "{secondary_color}",
- inverse_header_color = "{secondary_color}",
- left_column_subtle_color = "{apply_alpha(secondary_color, 0.6)}",
- left_column_selected_color = "{secondary_color}",
- blockquote_left_border_color = "{apply_alpha(secondary_color, 0.5)}",
- table_row_even_background_color = "{lighten_color(secondary_color, 0.7)}"
- )
-
- template_duo <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "primary_color",
- "#1F4257",
- "multiple",
- "Duotone Primary Color",
- "secondary_color",
- "#F97B64",
- "multiple",
- "Duotone Secondary Color"
- )
- template_duo <- do.call("rbind", list(template_duo, template_variables))
- template_duo <- set_default(
- template_duo,
- text_color = "{choose_dark_or_light(primary_color, darken_color(primary_color, 0.9), lighten_color(secondary_color, 0.99))}",
- header_color = "{secondary_color}",
- background_color = "{primary_color}",
- link_color = "{secondary_color}",
- text_bold_color = "{secondary_color}",
- text_slide_number_color = "{text_color}",
- code_inline_color = "{secondary_color}",
- inverse_background_color = "{secondary_color}",
- inverse_text_color = "{primary_color}",
- inverse_header_color = "{primary_color}",
- title_slide_text_color = "{secondary_color}",
- title_slide_background_color = "{primary_color}",
- left_column_subtle_color = "{apply_alpha(secondary_color, 0.6)}",
- left_column_selected_color = "{secondary_color}",
- blockquote_left_border_color = "{apply_alpha(secondary_color, 0.5)}",
- table_row_even_background_color = "{lighten_color(primary_color, 0.3)}"
- )
-
- template_duo_accent <- tibble::tribble(
- ~variable,
- ~default,
- ~element,
- ~description,
- "primary_color",
- "#006747",
- "multiple",
- "Duotone Primary Color",
- "secondary_color",
- "#CFC493",
- "multiple",
- "Duotone Secondary Color",
- "white_color",
- "#FFFFFF",
- "multiple",
- "Brightest color used",
- "black_color",
- "#000000",
- "multiple",
- "Darkest color used"
- )
- template_duo_accent <- do.call("rbind", list(template_duo_accent, template_variables))
- template_duo_accent <- set_default(
- template_duo_accent,
- text_color = "{black_color}",
- header_color = "{primary_color}",
- background_color = "{white_color}",
- link_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
- text_bold_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
- text_slide_number_color = "{primary_color}",
- code_inline_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
- inverse_background_color = "{secondary_color}",
- inverse_text_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
- inverse_header_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
- title_slide_background_color = "{primary_color}",
- title_slide_text_color = "{choose_dark_or_light(primary_color, black_color, white_color)}",
- left_column_subtle_color = "{apply_alpha(primary_color, 0.6)}",
- left_column_selected_color = "{primary_color}",
- blockquote_left_border_color = "{apply_alpha(secondary_color, 0.5)}",
- table_row_even_background_color = "{lighten_color(secondary_color, 0.3)}"
- )
-
- template_duo_accent_inverse <- set_default(
- template_duo_accent,
- text_color = "{white_color}",
- header_color = "{primary_color}",
- background_color = "{black_color}",
- link_color = "{choose_dark_or_light(secondary_color, secondary_color, primary_color)}",
- text_bold_color = "{choose_dark_or_light(secondary_color, secondary_color, primary_color)}",
- text_slide_number_color = "{primary_color}",
- code_inline_color = "{choose_dark_or_light(secondary_color, secondary_color, primary_color)}",
- inverse_background_color = "{secondary_color}",
- inverse_text_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
- inverse_header_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
- title_slide_background_color = "{primary_color}",
- title_slide_text_color = "{choose_dark_or_light(primary_color, black_color, white_color)}",
- left_column_subtle_color = "{apply_alpha(primary_color, 0.6)}",
- left_column_selected_color = "{primary_color}",
- blockquote_left_border_color = "{apply_alpha(secondary_color, 0.5)}",
- table_row_even_background_color = "{darken_color(choose_dark_or_light(primary_color, secondary_color, primary_color), 0.3)}"
- )
-
- solarized <- list(
- "base03" = "#002b36",
- "base02" = "#073642",
- "base01" = "#586e75",
- "base00" = "#657b83",
- "base0" = "#839496",
- "base1" = "#93a1a1",
- "base2" = "#eee8d5",
- "base3" = "#fdf6e3",
- "yellow" = "#b58900",
- "orange" = "#cb4b16",
- "red" = "#dc322f",
- "magenta" = "#d33682",
- "violet" = "#6c71c4",
- "blue" = "#268bd2",
- "cyan" = "#2aa198",
- "green" = "#859900"
- )
-
-
- template_solarized_light <- set_default(
- template_variables,
- text_color = solarized$base00,
- header_color = solarized$red,
- background_color = solarized$base3,
- link_color = solarized$yellow,
- text_bold_color = solarized$magenta,
- text_slide_number_color = solarized$base1,
- code_highlight_color = "#268bd240",
- # xaringanthemer:::apply_alpha(solarized$blue, 0.25)
- code_inline_color = solarized$violet,
- inverse_background_color = solarized$base03,
- inverse_text_color = solarized$base3,
- inverse_header_color = "{inverse_text_color}",
- title_slide_text_color = "{inverse_text_color}",
- title_slide_background_color = "{inverse_background_color}",
- left_column_subtle_color = solarized$base1,
- left_column_selected_color = solarized$base01,
- blockquote_left_border_color = solarized$orange,
- table_border_color = solarized$base0,
- table_row_border_color = solarized$base0,
- table_row_even_background_color = solarized$base2
- )
-
- template_solarized_dark <- set_default(
- template_variables,
- text_color = solarized$base0,
- header_color = solarized$red,
- background_color = solarized$base03,
- link_color = solarized$yellow,
- text_bold_color = solarized$magenta,
- text_slide_number_color = solarized$base01,
- code_highlight_color = "#268bd240",
- # xaringanthemer:::apply_alpha(solarized$blue, 0.25)
- code_inline_color = solarized$violet,
- inverse_background_color = solarized$base3,
- inverse_text_color = solarized$base03,
- inverse_header_color = "{inverse_text_color}",
- title_slide_text_color = "{inverse_text_color}",
- title_slide_background_color = "{inverse_background_color}",
- left_column_subtle_color = solarized$base01,
- left_column_selected_color = solarized$base1,
- blockquote_left_border_color = solarized$orange,
- table_border_color = solarized$base00,
- table_row_border_color = solarized$base00,
- table_row_even_background_color = solarized$base02
- )
-
-
- # Theme Generating Helpers ----------------------------------------------
-
-
- plural_element <- function(css_name) {
- is_mult <- grepl(",|and|or", css_name)
- is_class <- grepl("^\\.", css_name)
- ifelse(
- is_class,
- ifelse(is_mult, "classes", "class"),
- ifelse(is_mult, "elements", "element")
- )
- }
-
- element_description <- function(element) {
- out <- rep("", length(element))
- multiple <- grepl("multiple", element)
- out[multiple] <- "Modifies multiple CSS classes or elements."
-
- ifelse(
- multiple | is.na(element) | element == "",
- out,
- glue::glue("Modifies the `{element}` {plural_element(element)}.")
- )
- }
|