😎 Give your xaringan slides some style
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

374 lines
24KB

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