😎 Give your xaringan slides some style
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

321 lines
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. )