😎 Give your xaringan slides some style
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

317 lines
18KB

  1. template_variables <- tibble::tribble(
  2. ~ variable, ~ default, ~ element, ~ description
  3. , "text_color", "#000", "body", "Text Color"
  4. , "header_color", "#000", "h1, h2, h3", "Header Color"
  5. , "background_color", "#FFF", ".remark-slide-content", "Slide Background Color"
  6. , "link_color", "rgb(249, 38, 114)", "a, a > code", "Link Color"
  7. , "text_bold_color", NA_character_, "strong", "Bold Text Color"
  8. , "text_slide_number_color", "{inverse_background_color}", ".remark-slide-number", "Slide Number Color"
  9. , "code_highlight_color", "rgba(255,255,0,0.5)", ".remark-code-line-highlighted", "Code Line Highlight"
  10. , "code_inline_color", "#000", ".remark-inline-code", "Inline Code Color"
  11. , "code_inline_background_color", NA_character_, ".remark-inline-code", "Inline Code Background Color"
  12. , "inverse_background_color", "#272822", ".inverse", "Inverse Background Color"
  13. , "inverse_text_color", "#d6d6d6", ".inverse", "Inverse Text Color"
  14. , "inverse_text_shadow", "{FALSE}", ".inverse", "Enables Shadow on text of inverse slides"
  15. , "inverse_header_color", "#f3f3f3", ".inverse h1, .inverse h2, .inverse h3", "Inverse Header Color"
  16. , "title_slide_text_color", "{inverse_text_color}", ".title-slide", "Title Slide Text Color"
  17. , "title_slide_background_color", "{inverse_background_color}", ".title-slide", "Title Slide Background Color"
  18. , "title_slide_background_image", NA_character_, ".title-slide", "Title Slide Background Image URL"
  19. , "left_column_subtle_color", "#777", ".left-column", "Left Column Text (not last)"
  20. , "left_column_selected_color", "#000", ".left-column h2:last-of-type, .left-column h3:last-child", "Left Column Current Selection"
  21. , "blockquote_left_color", "lightgray", "blockquote", "Blockquote Left Border Color"
  22. , "table_border_color", "#666", "table: border-top, border-bottom", "Table top/bottom border"
  23. , "table_row_border_color", "#ddd", "table thead th: border-bottom", "Table row inner bottom border"
  24. , "table_row_even_background_color", "#eee", "thead, tfoot, tr:nth-child(even)", "Table Even Row Background Color"
  25. , "text_size", "20px", ".remark-slide-content", "Slide Body Text Size"
  26. , "text_size_h1", "55px", ".remark-slide-content h1", "h1 Header Text Size"
  27. , "text_size_h2", "45px", ".remark-slide-content h2", "h2 Header Text Size"
  28. , "text_size_h3", "35px", ".remark-slide-content h3", "h3 Header Text Size"
  29. , "text_size_slide_number", "20px", ".remark-slide-number", "Slide Number Text Size"
  30. , "text_size_code", "20px", ".remark-code, .remark-inline-code", "Code Text Size"
  31. , "text_font_google", NULL, "body", "Use `google_font()` to specify body font"
  32. , "text_font_family", "'Droid Serif'", "body", "Body Text Font Family"
  33. , "text_font_weight", "normal", "body", "Body Text Font Weight"
  34. , "text_font_url", "https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic", "@import url()", "Body Text Font URL(s)"
  35. , "text_font_family_fallback", "'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC'", "body", "Body Text Font Fallbacks"
  36. , "text_font_base", "serif", "body", "Body Text Base Font (Total Failure Fallback)"
  37. , "header_font_google", NULL, "body", "Use `google_font()` to specify header font"
  38. , "header_font_family", "'Yanone Kaffeesatz'", "h1, h2, h3", "Header Font Family"
  39. , "header_font_weight", "normal", "h1, h2, h3", "Header Font Weight"
  40. , "header_font_url", "https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz", "@import url", "Header Font URL"
  41. , "code_font_google", NULL, "body", "Use `google_font()` to specify code font"
  42. , "code_font_family", "'Source Code Pro'", ".remark-code, .remark-inline-code", "Code Font Family"
  43. , "code_font_url", "https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700", "@import url", "Code Font URL"
  44. , "code_font_family_fallback", "'Lucida Console', Monaco", ".remark-code, .remark-inline-code", "Code Font Fallback"
  45. )
  46. set_default <- function(tv, ...) {
  47. vars <- c(...)
  48. for (var in names(vars)) {
  49. tv[tv$variable == var, 'default'] <- vars[var]
  50. }
  51. tv
  52. }
  53. template_mono_light <- tibble::tribble(
  54. ~ variable, ~ default, ~ element, ~ description
  55. , "base_color", "#23395b", "multiple", "Monotone base color, works best with a strong color"
  56. , "white_color", "{lighten_color(base_color, 0.9)}", "multiple", "Brightest color used, default is a very light version of `base_color`"
  57. , "black_color", "{darken_color(base_color, 0.3)}", "multiple", "Darkest color used, default is a very dark, version of `base_color`"
  58. )
  59. template_mono_light <- do.call('rbind', list(template_mono_light, template_variables))
  60. template_mono_light <- set_default(
  61. template_mono_light,
  62. text_color = "{black_color}",
  63. header_color = "{base_color}",
  64. background_color = "{white_color}",
  65. link_color = "{base_color}",
  66. text_bold_color = "{base_color}",
  67. text_slide_number_color = "{base_color}",
  68. code_inline_color = "{base_color}",
  69. inverse_background_color = "{base_color}",
  70. inverse_text_color = "{white_color}",
  71. inverse_header_color = "{white_color}",
  72. left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
  73. left_column_selected_color = "{base_color}",
  74. blockquote_left_color = "{apply_alpha(base_color, 0.5)}",
  75. table_row_even_background_color = "{lighten_color(base_color, 0.8)}")
  76. template_mono_dark <- tibble::tribble(
  77. ~ variable, ~ default, ~ element, ~ description
  78. , "base_color", "#cbf7ed", "multiple", "Monotone Base Color, works best with a light color."
  79. , "white_color", "{lighten_color(base_color, 0.8)}", "multiple", "Brightest color used, default is a very light version of `base_color`"
  80. , "black_color", "{darken_color(base_color, 0.85)}", "multiple", "Darkest color used, default is a very dark, version of `base_color`"
  81. )
  82. template_mono_dark <- do.call('rbind', list(template_mono_dark, template_variables))
  83. template_mono_dark <- set_default(
  84. template_mono_dark,
  85. text_color = "{white_color}",
  86. header_color = "{base_color}",
  87. background_color = "{black_color}",
  88. link_color = "{base_color}",
  89. text_bold_color = "{base_color}",
  90. text_slide_number_color = "{base_color}",
  91. code_inline_color = "{base_color}",
  92. inverse_background_color = "{base_color}",
  93. inverse_text_color = "{black_color}",
  94. inverse_header_color = "{black_color}",
  95. left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
  96. left_column_selected_color = "{base_color}",
  97. blockquote_left_color = "{apply_alpha(base_color, 0.5)}",
  98. table_row_even_background_color = "{darken_color(base_color, 0.7)}")
  99. template_mono_accent <- tibble::tribble(
  100. ~ variable, ~ default, ~ element, ~ description
  101. , "base_color", "#23395b", "multiple", "Monotone Base Color, works best with a strong color."
  102. , "white_color", "#FFFFFF", "multiple", "Brightest color used"
  103. , "black_color", "#272822", "multiple", "Darkest color used"
  104. )
  105. template_mono_accent <- do.call('rbind', list(template_mono_accent, template_variables))
  106. template_mono_accent <- set_default(
  107. template_mono_accent,
  108. text_color = "{black_color}",
  109. header_color = "{base_color}",
  110. background_color = "{white_color}",
  111. link_color = "{base_color}",
  112. text_bold_color = "{base_color}",
  113. text_slide_number_color = "{base_color}",
  114. code_inline_color = "{base_color}",
  115. inverse_background_color = "{base_color}",
  116. inverse_text_color = "{white_color}",
  117. inverse_header_color = "{white_color}",
  118. left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
  119. left_column_selected_color = "{base_color}",
  120. blockquote_left_color = "{apply_alpha(base_color, 0.5)}",
  121. table_row_even_background_color = "{lighten_color(base_color, 0.7)}")
  122. template_mono_accent_inverse <- tibble::tribble(
  123. ~ variable, ~ default, ~ element, ~ description
  124. , "base_color", "#3C989E", "multiple", "Monotone Base Color, works best with a light color."
  125. , "white_color", "#FFFFFF", "multiple", "Brightest color used, default is a very light version of `base_color`"
  126. , "black_color", "{darken_color(base_color, 0.9)}", "multiple", "Darkest color used, default is a very dark, version of `base_color`"
  127. )
  128. template_mono_accent_inverse <- do.call('rbind', list(template_mono_accent_inverse, template_variables))
  129. template_mono_accent_inverse <- set_default(
  130. template_mono_accent_inverse,
  131. text_color = "{white_color}",
  132. header_color = "{base_color}",
  133. background_color = "{black_color}",
  134. link_color = "{base_color}",
  135. text_bold_color = "{base_color}",
  136. text_slide_number_color = "{base_color}",
  137. code_inline_color = "{base_color}",
  138. inverse_background_color = "{base_color}",
  139. inverse_text_color = "{black_color}",
  140. inverse_header_color = "{black_color}",
  141. left_column_subtle_color = "{apply_alpha(base_color, 0.6)}",
  142. left_column_selected_color = "{base_color}",
  143. blockquote_left_color = "{apply_alpha(base_color, 0.5)}",
  144. table_row_even_background_color = "{darken_color(base_color, 0.7)}")
  145. template_duo_light <- tibble::tribble(
  146. ~ variable, ~ default, ~ element, ~ description
  147. , "primary_color", "#1F4257", "mutliple", "Duotone Secondary Color"
  148. , "secondary_color", "#F97B64", "multiple", "Duotone Primary Color"
  149. , "white_color", "{lighten_color(primary_color, 0.99)}", "multiple", "Brightest color used, default is a very light version of `primary_color`"
  150. , "black_color", "{darken_color(secondary_color, 0.9)}", "multiple", "Darkest color used, default is a very dark version of `secondary_color`"
  151. )
  152. template_duo_light <- do.call('rbind', list(template_duo_light, template_variables))
  153. template_duo_light <- set_default(
  154. template_duo_light,
  155. text_color = "{black_color}",
  156. header_color = "{primary_color}",
  157. background_color = "{white_color}",
  158. link_color = "{secondary_color}",
  159. text_bold_color = "{secondary_color}",
  160. text_slide_number_color = "{primary_color}",
  161. code_inline_color = "{secondary_color}",
  162. inverse_background_color = "{primary_color}",
  163. inverse_text_color = "{secondary_color}",
  164. inverse_header_color = "{secondary_color}",
  165. left_column_subtle_color = "{apply_alpha(secondary_color, 0.6)}",
  166. left_column_selected_color = "{secondary_color}",
  167. blockquote_left_color = "{apply_alpha(secondary_color, 0.5)}",
  168. table_row_even_background_color = "{lighten_color(secondary_color, 0.7)}")
  169. template_duo <- tibble::tribble(
  170. ~ variable, ~ default, ~ element, ~ description
  171. , "primary_color", "#1F4257", "mutliple", "Duotone Primary Color"
  172. , "secondary_color", "#F97B64", "multiple", "Duotone Secondary Color"
  173. )
  174. template_duo <- do.call('rbind', list(template_duo, template_variables))
  175. template_duo <- set_default(
  176. template_duo,
  177. text_color = "{choose_dark_or_light(primary_color, darken_color(primary_color, 0.9), lighten_color(secondary_color, 0.99))}",
  178. header_color = "{secondary_color}",
  179. background_color = "{primary_color}",
  180. link_color = "{secondary_color}",
  181. text_bold_color = "{secondary_color}",
  182. text_slide_number_color = "{text_color}",
  183. code_inline_color = "{secondary_color}",
  184. inverse_background_color = "{secondary_color}",
  185. inverse_text_color = "{primary_color}",
  186. inverse_header_color = "{primary_color}",
  187. title_slide_text_color = "{secondary_color}",
  188. title_slide_background_color = "{primary_color}",
  189. left_column_subtle_color = "{apply_alpha(secondary_color, 0.6)}",
  190. left_column_selected_color = "{secondary_color}",
  191. blockquote_left_color = "{apply_alpha(secondary_color, 0.5)}",
  192. table_row_even_background_color = "{lighten_color(primary_color, 0.3)}")
  193. template_duo_accent <- tibble::tribble(
  194. ~ variable, ~ default, ~ element, ~ description
  195. , "primary_color", "#006747", "mutliple", "Duotone Primary Color"
  196. , "secondary_color", "#CFC493", "multiple", "Duotone Secondary Color"
  197. , "white_color", "#FFFFFF", "multiple", "Brightest color used"
  198. , "black_color", "#000000", "multiple", "Darkest color used"
  199. )
  200. template_duo_accent <- do.call('rbind', list(template_duo_accent, template_variables))
  201. template_duo_accent <- set_default(
  202. template_duo_accent,
  203. text_color = "{black_color}",
  204. header_color = "{primary_color}",
  205. background_color = "{white_color}",
  206. link_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
  207. text_bold_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
  208. text_slide_number_color = "{primary_color}",
  209. code_inline_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
  210. inverse_background_color = "{secondary_color}",
  211. inverse_text_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
  212. inverse_header_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
  213. title_slide_background_color = "{primary_color}",
  214. title_slide_text_color = "{choose_dark_or_light(primary_color, black_color, white_color)}",
  215. left_column_subtle_color = "{apply_alpha(primary_color, 0.6)}",
  216. left_column_selected_color = "{primary_color}",
  217. blockquote_left_color = "{apply_alpha(secondary_color, 0.5)}",
  218. table_row_even_background_color = "{lighten_color(secondary_color, 0.3)}")
  219. template_duo_accent_inverse <- set_default(
  220. template_duo_accent,
  221. text_color = "{white_color}",
  222. header_color = "{primary_color}",
  223. background_color = "{black_color}",
  224. link_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
  225. text_bold_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
  226. text_slide_number_color = "{primary_color}",
  227. code_inline_color = "{choose_dark_or_light(secondary_color, primary_color, secondary_color)}",
  228. inverse_background_color = "{secondary_color}",
  229. inverse_text_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
  230. inverse_header_color = "{choose_dark_or_light(secondary_color, black_color, white_color)}",
  231. title_slide_background_color = "{primary_color}",
  232. title_slide_text_color = "{choose_dark_or_light(primary_color, black_color, white_color)}",
  233. left_column_subtle_color = "{apply_alpha(primary_color, 0.6)}",
  234. left_column_selected_color = "{primary_color}",
  235. blockquote_left_color = "{apply_alpha(secondary_color, 0.5)}",
  236. table_row_even_background_color = "{darken_color(choose_dark_or_light(primary_color, secondary_color, primary_color), 0.3)}")
  237. solarized <- list(
  238. "base03" = "#002b36",
  239. "base02" = "#073642",
  240. "base01" = "#586e75",
  241. "base00" = "#657b83",
  242. "base0" = "#839496",
  243. "base1" = "#93a1a1",
  244. "base2" = "#eee8d5",
  245. "base3" = "#fdf6e3",
  246. "yellow" = "#b58900",
  247. "orange" = "#cb4b16",
  248. "red" = "#dc322f",
  249. "magenta" = "#d33682",
  250. "violet" = "#6c71c4",
  251. "blue" = "#268bd2",
  252. "cyan" = "#2aa198",
  253. "green" = "#859900")
  254. template_solarized_light <- set_default(
  255. template_variables,
  256. text_color = solarized$base00,
  257. header_color = solarized$red,
  258. background_color = solarized$base3,
  259. link_color = solarized$yellow,
  260. text_bold_color = solarized$magenta,
  261. text_slide_number_color = solarized$base1,
  262. code_highlight_color = "#268bd240", #xaringanthemer:::apply_alpha(solarized$blue, 0.25)
  263. code_inline_color = solarized$violet,
  264. code_inline_background_color = "NA",
  265. inverse_background_color = solarized$base03,
  266. inverse_text_color = solarized$base3,
  267. inverse_text_shadow = "{FALSE}",
  268. inverse_header_color = "{inverse_text_color}",
  269. title_slide_text_color = "{inverse_text_color}",
  270. title_slide_background_color = "{inverse_background_color}",
  271. title_slide_background_image = "NA",
  272. left_column_subtle_color = solarized$base1,
  273. left_column_selected_color = solarized$base01,
  274. blockquote_left_color = solarized$orange,
  275. table_border_color = solarized$base0,
  276. table_row_border_color = solarized$base0,
  277. table_row_even_background_color = solarized$base2
  278. )
  279. template_solarized_dark <- set_default(
  280. template_variables,
  281. text_color = solarized$base0,
  282. header_color = solarized$red,
  283. background_color = solarized$base03,
  284. link_color = solarized$yellow,
  285. text_bold_color = solarized$magenta,
  286. text_slide_number_color = solarized$base01,
  287. code_highlight_color = "#268bd240", #xaringanthemer:::apply_alpha(solarized$blue, 0.25)
  288. code_inline_color = solarized$violet,
  289. code_inline_background_color = "NA",
  290. inverse_background_color = solarized$base3,
  291. inverse_text_color = solarized$base03,
  292. inverse_text_shadow = "{FALSE}",
  293. inverse_header_color = "{inverse_text_color}",
  294. title_slide_text_color = "{inverse_text_color}",
  295. title_slide_background_color = "{inverse_background_color}",
  296. title_slide_background_image = "NA",
  297. left_column_subtle_color = solarized$base01,
  298. left_column_selected_color = solarized$base1,
  299. blockquote_left_color = solarized$orange,
  300. table_border_color = solarized$base00,
  301. table_row_border_color = solarized$base00,
  302. table_row_even_background_color = solarized$base02
  303. )