|
- 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)}.")
- )
- }
|