| @@ -1,5 +1,7 @@ | |||
| # Generated by roxygen2: do not edit by hand | |||
| export(apply_alpha) | |||
| export(choose_dark_or_light) | |||
| export(darken_color) | |||
| export(duo_theme) | |||
| export(google_font) | |||
| @@ -17,9 +17,9 @@ | |||
| #' @param title_slide_text_color Title Slide Text Color, defaults to `inverse_text_color` | |||
| #' @param title_slide_background_color Title Slide Background Color, defaults to `inverse_background_color` | |||
| #' @param title_slide_background_image Title Slide Background Image URL, defaults to NA | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `lighten_color(base_color, 0.5)` | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `apply_alpha(base_color, 0.6)` | |||
| #' @param left_column_selected_color Left Column Current Selection, defaults to `base_color` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `lighten_color(base_color, 0.5)` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `apply_alpha(base_color, 0.5)` | |||
| #' @param table_border_color Table top/bottom border, defaults to #666 | |||
| #' @param table_row_border_color Table row inner bottom border, defaults to #ddd | |||
| #' @param table_row_even_background_color Table Even Row Background Color, defaults to `lighten_color(base_color, 0.7)` | |||
| @@ -61,9 +61,9 @@ mono_accent <- function( | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = lighten_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = lighten_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", | |||
| table_row_border_color = "#ddd", | |||
| table_row_even_background_color = lighten_color(base_color, 0.7), | |||
| @@ -17,9 +17,9 @@ | |||
| #' @param title_slide_text_color Title Slide Text Color, defaults to `inverse_text_color` | |||
| #' @param title_slide_background_color Title Slide Background Color, defaults to `inverse_background_color` | |||
| #' @param title_slide_background_image Title Slide Background Image URL, defaults to NA | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `darken_color(base_color, 0.5)` | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `apply_alpha(base_color, 0.6)` | |||
| #' @param left_column_selected_color Left Column Current Selection, defaults to `base_color` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `darken_color(base_color, 0.5)` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `apply_alpha(base_color, 0.5)` | |||
| #' @param table_border_color Table top/bottom border, defaults to #666 | |||
| #' @param table_row_border_color Table row inner bottom border, defaults to #ddd | |||
| #' @param table_row_even_background_color Table Even Row Background Color, defaults to `darken_color(base_color, 0.7)` | |||
| @@ -61,9 +61,9 @@ mono_accent_inverse <- function( | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = darken_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = darken_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", | |||
| table_row_border_color = "#ddd", | |||
| table_row_even_background_color = darken_color(base_color, 0.7), | |||
| @@ -17,9 +17,9 @@ | |||
| #' @param title_slide_text_color Title Slide Text Color, defaults to `inverse_text_color` | |||
| #' @param title_slide_background_color Title Slide Background Color, defaults to `inverse_background_color` | |||
| #' @param title_slide_background_image Title Slide Background Image URL, defaults to NA | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `darken_color(base_color, 0.5)` | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `apply_alpha(base_color, 0.6)` | |||
| #' @param left_column_selected_color Left Column Current Selection, defaults to `base_color` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `darken_color(base_color, 0.5)` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `apply_alpha(base_color, 0.5)` | |||
| #' @param table_border_color Table top/bottom border, defaults to #666 | |||
| #' @param table_row_border_color Table row inner bottom border, defaults to #ddd | |||
| #' @param table_row_even_background_color Table Even Row Background Color, defaults to `darken_color(base_color, 0.7)` | |||
| @@ -61,9 +61,9 @@ mono_dark <- function( | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = darken_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = darken_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", | |||
| table_row_border_color = "#ddd", | |||
| table_row_even_background_color = darken_color(base_color, 0.7), | |||
| @@ -17,9 +17,9 @@ | |||
| #' @param title_slide_text_color Title Slide Text Color, defaults to `inverse_text_color` | |||
| #' @param title_slide_background_color Title Slide Background Color, defaults to `inverse_background_color` | |||
| #' @param title_slide_background_image Title Slide Background Image URL, defaults to NA | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `lighten_color(base_color, 0.5)` | |||
| #' @param left_column_subtle_color Left Column Text (not last), defaults to `apply_alpha(base_color, 0.6)` | |||
| #' @param left_column_selected_color Left Column Current Selection, defaults to `base_color` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `lighten_color(base_color, 0.5)` | |||
| #' @param blockquote_left_color Blockquote Left Border Color, defaults to `apply_alpha(base_color, 0.5)` | |||
| #' @param table_border_color Table top/bottom border, defaults to #666 | |||
| #' @param table_row_border_color Table row inner bottom border, defaults to #ddd | |||
| #' @param table_row_even_background_color Table Even Row Background Color, defaults to `lighten_color(base_color, 0.8)` | |||
| @@ -61,9 +61,9 @@ mono_light <- function( | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = lighten_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = lighten_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", | |||
| table_row_border_color = "#ddd", | |||
| table_row_even_background_color = lighten_color(base_color, 0.8), | |||
| @@ -65,9 +65,9 @@ template_mono_light <- set_default( | |||
| inverse_background_color = "{base_color}", | |||
| inverse_text_color = "{white_color}", | |||
| inverse_header_color = "{white_color}", | |||
| left_column_subtle_color = "{lighten_color(base_color, 0.5)}", | |||
| left_column_subtle_color = "{apply_alpha(base_color, 0.6)}", | |||
| left_column_selected_color = "{base_color}", | |||
| blockquote_left_color = "{lighten_color(base_color, 0.5)}", | |||
| blockquote_left_color = "{apply_alpha(base_color, 0.5)}", | |||
| table_row_even_background_color = "{lighten_color(base_color, 0.8)}") | |||
| template_mono_dark <- tibble::tribble( | |||
| @@ -89,9 +89,9 @@ template_mono_dark <- set_default( | |||
| inverse_background_color = "{base_color}", | |||
| inverse_text_color = "{black_color}", | |||
| inverse_header_color = "{black_color}", | |||
| left_column_subtle_color = "{darken_color(base_color, 0.5)}", | |||
| left_column_subtle_color = "{apply_alpha(base_color, 0.6)}", | |||
| left_column_selected_color = "{base_color}", | |||
| blockquote_left_color = "{darken_color(base_color, 0.5)}", | |||
| blockquote_left_color = "{apply_alpha(base_color, 0.5)}", | |||
| table_row_even_background_color = "{darken_color(base_color, 0.7)}") | |||
| template_mono_accent <- tibble::tribble( | |||
| @@ -113,9 +113,9 @@ template_mono_accent <- set_default( | |||
| inverse_background_color = "{base_color}", | |||
| inverse_text_color = "{white_color}", | |||
| inverse_header_color = "{white_color}", | |||
| left_column_subtle_color = "{lighten_color(base_color, 0.5)}", | |||
| left_column_subtle_color = "{apply_alpha(base_color, 0.6)}", | |||
| left_column_selected_color = "{base_color}", | |||
| blockquote_left_color = "{lighten_color(base_color, 0.5)}", | |||
| blockquote_left_color = "{apply_alpha(base_color, 0.5)}", | |||
| table_row_even_background_color = "{lighten_color(base_color, 0.7)}") | |||
| template_mono_accent_inverse <- tibble::tribble( | |||
| @@ -137,7 +137,7 @@ template_mono_accent_inverse <- set_default( | |||
| inverse_background_color = "{base_color}", | |||
| inverse_text_color = "{black_color}", | |||
| inverse_header_color = "{black_color}", | |||
| left_column_subtle_color = "{darken_color(base_color, 0.5)}", | |||
| left_column_subtle_color = "{apply_alpha(base_color, 0.6)}", | |||
| left_column_selected_color = "{base_color}", | |||
| blockquote_left_color = "{darken_color(base_color, 0.5)}", | |||
| blockquote_left_color = "{apply_alpha(base_color, 0.5)}", | |||
| table_row_even_background_color = "{darken_color(base_color, 0.7)}") | |||
| @@ -16,12 +16,43 @@ darken_color <- function(color_hex, strength = 0.8) { | |||
| rgb(color_rgb[1], color_rgb[2], color_rgb[3], maxColorValue = 255) | |||
| } | |||
| adjust_value_color <- function(color_hext, strength = 0.5) { | |||
| #' @export | |||
| apply_alpha <- function(color_hex, opacity = 0.5) { | |||
| paste0(color_hex, as.hexmode(round(255*opacity, 0))) | |||
| } | |||
| adjust_value_color <- function(color_hex, strength = 0.5) { | |||
| color_hsv <- rgb2hsv(col2rgb(color_hex))[, 1] | |||
| color_hsv['v'] <- strength | |||
| hsv(color_hsv[1], color_hsv[2], color_hsv[3]) | |||
| } | |||
| #' Choose dark or light color | |||
| #' | |||
| #' Takes a color input as `x` and returns either the black or white color (or | |||
| #' expression) if dark or light text should be used over the input color for | |||
| #' best contrast. Follows W3C Recommendations. | |||
| #' | |||
| #' @references <https://stackoverflow.com/a/3943023/2022615> | |||
| #' @param x The background color | |||
| #' @param black Text or foreground color, e.g. "#222" or | |||
| #' `substitute(darken_color(x, 0.8))`, if black text provides the best contrast. | |||
| #' @param white Text or foreground color or expression, e.g. "#EEE" or | |||
| #' `substitute(lighten_color(x, 0.8))`, if white text provides the best contrast. | |||
| #' @export | |||
| choose_dark_or_light <- function(x, black = "#000", white = "#FFF") { | |||
| # x = color_hex | |||
| # black <- substitute(black) | |||
| # white <- substitute(white) | |||
| color_rgb <- col2rgb(x)[, 1] | |||
| # from https://stackoverflow.com/a/3943023/2022615 | |||
| color_rgb <- color_rgb / 255 | |||
| color_rgb[color_rgb <= 0.03928] <- color_rgb[color_rgb <= 0.03928]/12.92 | |||
| color_rgb[color_rgb > 0.03928] <- ((color_rgb[color_rgb > 0.03928] + 0.055)/1.055)^2.4 | |||
| lum <- t(c(0.2126, 0.7152, 0.0722)) %*% color_rgb | |||
| if (lum[1, 1] > 0.179) eval(black) else eval(white) | |||
| } | |||
| #' @keywords internal | |||
| call_write_xaringan_theme <- function() { | |||
| paste0("write_xaringan_theme(", | |||
| @@ -0,0 +1,25 @@ | |||
| % Generated by roxygen2: do not edit by hand | |||
| % Please edit documentation in R/utils.R | |||
| \name{choose_dark_or_light} | |||
| \alias{choose_dark_or_light} | |||
| \title{Choose dark or light color} | |||
| \usage{ | |||
| choose_dark_or_light(x, black = "#000", white = "#FFF") | |||
| } | |||
| \arguments{ | |||
| \item{x}{The background color} | |||
| \item{black}{Text or foreground color, e.g. "#222" or | |||
| \code{substitute(darken_color(x, 0.8))}, if black text provides the best contrast.} | |||
| \item{white}{Text or foreground color or expression, e.g. "#EEE" or | |||
| \code{substitute(lighten_color(x, 0.8))}, if white text provides the best contrast.} | |||
| } | |||
| \description{ | |||
| Takes a color input as \code{x} and returns either the black or white color (or | |||
| expression) if dark or light text should be used over the input color for | |||
| best contrast. Follows W3C Recommendations. | |||
| } | |||
| \references{ | |||
| \url{https://stackoverflow.com/a/3943023/2022615} | |||
| } | |||
| @@ -16,9 +16,9 @@ mono_accent(base_color = "#23395b", white_color = "#FFFFFF", | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = lighten_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = lighten_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", table_row_border_color = "#ddd", | |||
| table_row_even_background_color = lighten_color(base_color, 0.7), | |||
| text_font_google = NULL, text_font_family = "'Droid Serif'", | |||
| @@ -72,11 +72,11 @@ mono_accent(base_color = "#23395b", white_color = "#FFFFFF", | |||
| \item{title_slide_background_image}{Title Slide Background Image URL, defaults to NA} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{lighten_color(base_color, 0.5)}} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{apply_alpha(base_color, 0.6)}} | |||
| \item{left_column_selected_color}{Left Column Current Selection, defaults to \code{base_color}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{lighten_color(base_color, 0.5)}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{apply_alpha(base_color, 0.5)}} | |||
| \item{table_border_color}{Table top/bottom border, defaults to #666} | |||
| @@ -16,9 +16,9 @@ mono_accent_inverse(base_color = "#3C989E", white_color = "#FFFFFF", | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = darken_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = darken_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", table_row_border_color = "#ddd", | |||
| table_row_even_background_color = darken_color(base_color, 0.7), | |||
| text_font_google = NULL, text_font_family = "'Droid Serif'", | |||
| @@ -72,11 +72,11 @@ mono_accent_inverse(base_color = "#3C989E", white_color = "#FFFFFF", | |||
| \item{title_slide_background_image}{Title Slide Background Image URL, defaults to NA} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{darken_color(base_color, 0.5)}} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{apply_alpha(base_color, 0.6)}} | |||
| \item{left_column_selected_color}{Left Column Current Selection, defaults to \code{base_color}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{darken_color(base_color, 0.5)}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{apply_alpha(base_color, 0.5)}} | |||
| \item{table_border_color}{Table top/bottom border, defaults to #666} | |||
| @@ -16,9 +16,9 @@ mono_dark(base_color = "#cbf7ed", white_color = lighten_color(base_color, | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = darken_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = darken_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", table_row_border_color = "#ddd", | |||
| table_row_even_background_color = darken_color(base_color, 0.7), | |||
| text_font_google = NULL, text_font_family = "'Droid Serif'", | |||
| @@ -72,11 +72,11 @@ mono_dark(base_color = "#cbf7ed", white_color = lighten_color(base_color, | |||
| \item{title_slide_background_image}{Title Slide Background Image URL, defaults to NA} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{darken_color(base_color, 0.5)}} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{apply_alpha(base_color, 0.6)}} | |||
| \item{left_column_selected_color}{Left Column Current Selection, defaults to \code{base_color}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{darken_color(base_color, 0.5)}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{apply_alpha(base_color, 0.5)}} | |||
| \item{table_border_color}{Table top/bottom border, defaults to #666} | |||
| @@ -16,9 +16,9 @@ mono_light(base_color = "#23395b", white_color = lighten_color(base_color, | |||
| title_slide_text_color = inverse_text_color, | |||
| title_slide_background_color = inverse_background_color, | |||
| title_slide_background_image = NA, | |||
| left_column_subtle_color = lighten_color(base_color, 0.5), | |||
| left_column_subtle_color = apply_alpha(base_color, 0.6), | |||
| left_column_selected_color = base_color, | |||
| blockquote_left_color = lighten_color(base_color, 0.5), | |||
| blockquote_left_color = apply_alpha(base_color, 0.5), | |||
| table_border_color = "#666", table_row_border_color = "#ddd", | |||
| table_row_even_background_color = lighten_color(base_color, 0.8), | |||
| text_font_google = NULL, text_font_family = "'Droid Serif'", | |||
| @@ -72,11 +72,11 @@ mono_light(base_color = "#23395b", white_color = lighten_color(base_color, | |||
| \item{title_slide_background_image}{Title Slide Background Image URL, defaults to NA} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{lighten_color(base_color, 0.5)}} | |||
| \item{left_column_subtle_color}{Left Column Text (not last), defaults to \code{apply_alpha(base_color, 0.6)}} | |||
| \item{left_column_selected_color}{Left Column Current Selection, defaults to \code{base_color}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{lighten_color(base_color, 0.5)}} | |||
| \item{blockquote_left_color}{Blockquote Left Border Color, defaults to \code{apply_alpha(base_color, 0.5)}} | |||
| \item{table_border_color}{Table top/bottom border, defaults to #666} | |||