😎 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.

321 satır
19KB

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