Просмотр исходного кода

Add apply_alpha and choose_dark_or_light functions

tags/v0.1.1
Garrick Aden-Buie 8 лет назад
Родитель
Сommit
b99959a33b
12 измененных файлов: 99 добавлений и 41 удалений
  1. +2
    -0
      NAMESPACE
  2. +4
    -4
      R/mono_accent.R
  3. +4
    -4
      R/mono_accent_inverse.R
  4. +4
    -4
      R/mono_dark.R
  5. +4
    -4
      R/mono_light.R
  6. +8
    -8
      R/theme_settings.R
  7. +32
    -1
      R/utils.R
  8. +25
    -0
      man/choose_dark_or_light.Rd
  9. +4
    -4
      man/mono_accent.Rd
  10. +4
    -4
      man/mono_accent_inverse.Rd
  11. +4
    -4
      man/mono_dark.Rd
  12. +4
    -4
      man/mono_light.Rd

+ 2
- 0
NAMESPACE Просмотреть файл

@@ -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)

+ 4
- 4
R/mono_accent.R Просмотреть файл

@@ -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),

+ 4
- 4
R/mono_accent_inverse.R Просмотреть файл

@@ -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),

+ 4
- 4
R/mono_dark.R Просмотреть файл

@@ -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),

+ 4
- 4
R/mono_light.R Просмотреть файл

@@ -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),

+ 8
- 8
R/theme_settings.R Просмотреть файл

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

+ 32
- 1
R/utils.R Просмотреть файл

@@ -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(",

+ 25
- 0
man/choose_dark_or_light.Rd Просмотреть файл

@@ -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}
}

+ 4
- 4
man/mono_accent.Rd Просмотреть файл

@@ -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}


+ 4
- 4
man/mono_accent_inverse.Rd Просмотреть файл

@@ -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}


+ 4
- 4
man/mono_dark.Rd Просмотреть файл

@@ -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}


+ 4
- 4
man/mono_light.Rd Просмотреть файл

@@ -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}


Загрузка…
Отмена
Сохранить